当前位置: 首页 > wzjs >正文

网站建设需要多少天时间app软件开发工具包

网站建设需要多少天时间,app软件开发工具包,南阳网站建设费用,黔西南做网站的有几家前言 在C语言编程中,字符和字符串的处理是必不可少的。C语言标准库提供了丰富的字符和字符串函数,这些函数极大地简化了字符和字符串的操作。本文将详细介绍这些函数的使用方法、模拟实现以及一些实用的代码示例,帮助你更好地理解和掌握它们…

前言

在C语言编程中,字符和字符串的处理是必不可少的。C语言标准库提供了丰富的字符和字符串函数,这些函数极大地简化了字符和字符串的操作。本文将详细介绍这些函数的使用方法、模拟实现以及一些实用的代码示例,帮助你更好地理解和掌握它们。

一、字符分类函数

字符分类函数用于判断字符的类型,这些函数都包含在ctype.h头文件中。例如,islower(int c)函数用于判断一个字符是否为小写字母。如果参数c是小写字母,则返回非零整数;否则返回0。
在这里插入图片描述

#include <stdio.h>
#include <ctype.h>
int main()
{int ret = islower('A');printf("%d\n", ret);ret = islower('a');printf("%d\n", ret);ret = islower('0');printf("%d\n", ret);return 0;
}

在这里插入图片描述

int main()
{int ret = isxdigit('9');printf("%d\n", ret);return 0;
}

在这里插入图片描述

示例代码:将字符串中的小写字母转换为大写

#include <stdio.h>
#include <ctype.h>
int main()
{char arr[] = "I am a Student.";int i = 0;while (arr[i] != '\0'){if (islower(arr[i])){arr[i] = arr[i] - 32;}i++;}printf("%s\n", arr);return 0;
}

在这里插入图片描述

二、字符转换函数

C语言提供了两个字符转换函数:tolower(int c)和toupper(int c)。tolower函数将大写字母转换为小写,而toupper函数将小写字母转换为大写。
示例代码:使用toupper函数将字符串中的小写字母转换为大写

#include <stdio.h>
#include <ctype.h>int main()
{char arr[] = "I am a Student.";int i = 0;while (arr[i] != '\0'){if (islower(arr[i])){arr[i] = toupper(arr[i]);}i++;}printf("%s\n", arr);return 0;
}

在这里插入图片描述

int main()
{char ch = toupper('a');printf("%c\n", ch);ch = tolower('A');printf("%c\n", ch);return 0;
}

在这里插入图片描述

int main()
{char arr[] = "I am a student.";int i = 0;while (arr[i] != '\0'){if (islower(arr[i])){arr[i] = toupper(arr[i]);}i++;}printf("%s\n", arr);return 0;
}

在这里插入图片描述

三、strlen的使用和模拟实现

strlen(const char *str)函数用于计算字符串的长度,返回字符串中’\0’之前的字符个数。需要注意的是,strlen的返回值类型是size_t,这是一个无符号类型。
示例代码:使用strlen比较两个字符串的长度

#include <stdio.h>
#include <string.h>int main()
{if (strlen("abc") - strlen("abcdef") > 0){printf(">\n");}else{printf("<\n");}
}

在这里插入图片描述
在这里插入图片描述
因为是size_t类型,所以得到的结果永远都是>=0的数

int main()
{if ((int)strlen("abc") - (int)strlen("abcdef") > 0){printf(">\n");}else{printf("<\n");}
}

在这里插入图片描述

strlen的模拟实现
方法1:计数器方式

int my_strlen(const char *str)
{int count = 0;assert(str);while (*str){count++;str++;}return count;
}

方法2:递归方式

int my_strlen(const char *str)
{assert(str);if (*str == '\0')return 0;elsereturn 1 + my_strlen(str + 1);
}

方法3:指针差值方式

#include <assert.h>size_t my_strlen(const char* str)
{const char* start = str;assert(str != NULL);while (*str != '\0'){str++;}return str - start;
}
int main()
{char arr[] = "abcdef";size_t len = my_strlen(arr);printf("%zd\n", len);return 0;
}

在这里插入图片描述

四、strcpy的使用和模拟实现

strcpy(char *destination, const char *source)函数用于将源字符串source复制到目标字符串destination中,包括终止符’\0’。目标字符串必须有足够的空间来存储源字符串。
在这里插入图片描述

#include <string.h>int main()
{char arr1[] = "hello world";char arr2[20] = { 0 };strcpy(arr2, arr1);printf("%s\n", arr2);return 0;
}

在这里插入图片描述
在这里插入图片描述

示例代码:模拟实现strcpy

#include<assert.h>char* my_strcpy(char* dest, const char* src)
{assert(dest);assert(src);char* ret = dest;while (*dest++ = *src++)//拷贝过去后,判断表达式的值,当\0拷贝过去后,停止拷贝{;}return ret;
}int main()
{char arr1[] = "abcdef";char arr2[20] = { 0 };char* pstr = my_strcpy(arr2, arr1);printf("%s\n", arr2);printf("%s\n", pstr);printf("%s\n", my_strcpy(arr2,arr1));return 0;
}

在这里插入图片描述

五、strcat的使用和模拟实现

strcat(char *destination, const char *source)函数用于将源字符串source追加到目标字符串destination的末尾。目标字符串必须有足够的空间来存储追加后的字符串。
在这里插入图片描述

#include <string.h>int main()
{char arr1[20] = "he\0lloxxxxx";char arr2[] = "world";char arr[20] = "abc";strcat(arr, arr);printf("%s\n", arr);return 0;
}

在这里插入图片描述

示例代码:模拟实现strcat

char *my_strcat(char *dest, const char *src)
{char *ret = dest;assert(dest != NULL);assert(src != NULL);while (*dest){dest++;}while ((*dest++ = *src++)){;}return ret;
}

六、strcmp的使用和模拟实现

strcmp(const char *str1, const char *str2)函数用于比较两个字符串。如果第一个字符串大于第二个字符串,则返回大于0的值;如果两个字符串相等,则返回0;如果第一个字符串小于第二个字符串,则返回小于0的值。
在这里插入图片描述

int main()
{char arr1[] = "abq";char arr2[] = "abcdef";int ret = strcmp(arr1, arr2);printf("%d\n", ret);if (ret > 0){printf(">\n");}else{printf("<\n");}return 0;
}

在这里插入图片描述

示例代码:模拟实现strcmp

int my_strcmp(const char *str1, const char *str2)
{assert(str1 != NULL);assert(str2 != NULL);while (*str1 == *str2){if (*str1 == '\0')return 0;str1++;str2++;}return *str1 - *str2;
}

七、strncpy函数的使用

strncpy(char *destination, const char *source, size_t num)函数用于将源字符串的前num个字符复制到目标字符串中。如果源字符串的长度小于num,则在目标字符串的末尾填充零,直到总长度达到num。
在这里插入图片描述

int main()
{char arr1[20] = "abcdef";char arr2[20] = "xxxxxxxxxxxxxx";strncpy(arr2, arr1, 8);printf("%s\n", arr2);return 0;
}

在这里插入图片描述

八、strncat函数的使用

strncat(char *destination, const char *source, size_t num)函数用于将源字符串的前num个字符追加到目标字符串的末尾,并在末尾添加终止符’\0’。
示例代码:使用strncat

#include <stdio.h>
#include <string.h>int main()
{char str1[20];char str2[20];strcpy(str1, "To be ");strcpy(str2, "or not to be");strncat(str1, str2, 6);printf("%s\n", str1);return 0;
}

在这里插入图片描述

九、strncmp函数的使用

strncmp(const char *str1, const char *str2, size_t num)函数用于比较两个字符串的前num个字符。如果两个字符串的前num个字符相等,则返回0;否则返回非零值。
在这里插入图片描述

在这里插入图片描述

十、strstr的使用和模拟实现

strstr(const char *str1, const char *str2)函数用于查找字符串str2在字符串str1中第一次出现的位置。如果找到,则返回指向该位置的指针;否则返回空指针。
示例代码:使用strstr
在这里插入图片描述

#include <stdio.h>
#include <string.h>int main()
{char arr[] = "abcdefabcdef";char* p = "efab";char* ret = strstr(arr, p);printf("%s\n", ret);return 0;
}

在这里插入图片描述

strstr的模拟实现

#include <assert.h>
const char* my_strstr(const char* str1, const char* str2)
{assert(str1 && str2);const char* s1 = NULL;const char* s2 = NULL;const char* cur = str1;if (*str2 == '\0'){return str1;}while (*cur){s1 = cur;s2 = str2;while (*s1 && *s2 && *s1 == *s2){s1++;s2++;}if (*s2 == '\0'){return cur;}cur++;}}int main()
{char arr[] = "abbbcdef";char* p = "bbcq";const char* ret = my_strstr(arr, p);if (ret == NULL){printf("不存在\n");}else{printf("%s\n", ret);}return 0;
}

在这里插入图片描述

十一、strtok函数的使用

strtok(char *str, const char *sep)函数用于根据分隔符sep分割字符串str。第一次调用时,str为要分割的字符串;后续调用时,str应为NULL,以继续分割上次操作的字符串。
示例代码:使用strtok
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

#include <stdio.h>
#include <string.h>int main()
{char arr[] = "192.168.6.111";char *sep = ".";char *str = NULL;for (str = strtok(arr, sep); str != NULL; str = strtok(NULL, sep)){printf("%s\n", str);}return 0;
}

十二、strerror函数的使用

strerror(int errnum)函数用于将错误码errnum对应的错误信息以字符串形式返回。错误码通常存储在errno变量中。
在这里插入图片描述

在这里插入图片描述

示例代码:使用strerror

#include <errno.h>int main()
{FILE* pf = fopen("data.txt", "r");if (pf == NULL){printf("打开文件失败,原因是:%s", strerror(errno));return 1;}else{printf("打开文件成功\n");fclose(pf);pf = NULL;}return 0;
}

在这里插入图片描述

#include <errno.h>
#include <string.h>
#include <stdio.h>int main()
{int i = 0;for (i = 0; i <= 10; i++){printf("%s\n", strerror(i));}return 0;
}

输出示例

No error
Operation not permitted
No such file or directory
No such process
Interrupted function call
Input/output error
No such device or address
Arg list too long
Exec format error
Bad file descriptor
No child processes

总结

本文详细介绍了C语言中常用的字符和字符串函数,包括它们的使用方法和模拟实现。通过这些函数,我们可以高效地处理字符和字符串,从而简化编程过程。希望本文能帮助你更好地理解和应用这些函数,提升你的C语言编程能力。如果你对这些函数还有其他疑问,欢迎在评论区留言讨论!


文章转载自:

http://zremZ5wM.wjLhp.cn
http://B7ndpQV9.wjLhp.cn
http://OhEmWDE5.wjLhp.cn
http://XLVN5OXX.wjLhp.cn
http://ohareFNz.wjLhp.cn
http://aUphQUkv.wjLhp.cn
http://fLFO0tlq.wjLhp.cn
http://Stw5mAD6.wjLhp.cn
http://ZPrYeVyX.wjLhp.cn
http://yKEca2v6.wjLhp.cn
http://RowxT8ic.wjLhp.cn
http://zwnLZ9Tq.wjLhp.cn
http://7wLPZUef.wjLhp.cn
http://dHadJKAc.wjLhp.cn
http://hgLug8mk.wjLhp.cn
http://JsOdPkIA.wjLhp.cn
http://AP8TgXSl.wjLhp.cn
http://x4zktlCd.wjLhp.cn
http://8XDXAJjv.wjLhp.cn
http://wOJOIeUZ.wjLhp.cn
http://qTeKejWn.wjLhp.cn
http://CXtHG7Ge.wjLhp.cn
http://XDrsKSUM.wjLhp.cn
http://E19xCI9s.wjLhp.cn
http://dgrY7tst.wjLhp.cn
http://qlaghxlP.wjLhp.cn
http://QGlxgilV.wjLhp.cn
http://0UKxatPp.wjLhp.cn
http://tOU8aWQI.wjLhp.cn
http://USS0S9jh.wjLhp.cn
http://www.dtcms.com/wzjs/667972.html

相关文章:

  • 网站案例代码网站设计网
  • 建设仿优酷视频网站如何做品牌网站设计
  • 公司简介模板怎么做seo优化方案策划书
  • thinkcmf 做企业网站wordpress扩容
  • 做媛网站wordpress 新手
  • 电脑做服务器上传网站加强门户网站建设
  • 乌镇网站开发文档大男人直播视频
  • 公司网站简介网页剪辑app
  • 个人网站主页郑州专业手机网站制作
  • 就业服务网站建设方案个人app开发平台免费
  • 网站建设 电话wordpress is_login
  • 城建公司建设网站基础资料深圳华强北在哪
  • 建设网站企业网上银行登录入口官方运城网站推广哪家好
  • 上海网站建设 网络推广阿里指数查询官网入口
  • 专业网站制作公司采用哪些技术制作网站?网上建立网站
  • 做企业网站 签合同要注意什么想开广告公司怎么起步
  • 12306网站为什么做不好使建设网站怎样赚钱
  • 做外汇看哪个网站五莲县城乡建设局网站首页
  • 左侧导航栏网站广州效果图设计公司
  • 宜兴市建设局网站四川建设银行官网招聘网站
  • 网站建设上市廊坊seo整站优化软件
  • 芜湖网站开发商业街网站建设方案
  • 为什么用wp做网站济南电子商务网站建设
  • 别人买了域名做违法网站中国城乡与住房建设部网站
  • 长春网站建设设计驻马店网站制作
  • 网站企业型类如何去除网站外链
  • 班玛县公司网站建设站长字体
  • wordpress大学模板企业网站如何优化排名
  • 百度减少大量网站收录做网站最好选什么语言
  • 容桂网站设计制作重庆网站建设案例