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

惠阳做网站网站平台报价模板下载

惠阳做网站,网站平台报价模板下载,青白江网站建设,网站打开速度进行检测目录 1. 字符分类函数 2、字符转换函数 3. strlen的使⽤和模拟实现 4. strcpy 的使⽤和模拟实现 5. strcat 的使⽤和模拟实现 6. strcmp 的使⽤和模拟实现 7. strncpy 函数的使⽤ 8. strncat 函数的使⽤ 9. strncmp函数的使⽤ 10. strstr 的使⽤和模拟实现 11. strt…目录 1. 字符分类函数 2、字符转换函数 3. strlen的使⽤和模拟实现 4. strcpy 的使⽤和模拟实现 5. strcat 的使⽤和模拟实现 6. strcmp 的使⽤和模拟实现 7. strncpy 函数的使⽤ 8. strncat 函数的使⽤ 9. strncmp函数的使⽤ 10. strstr 的使⽤和模拟实现 11. strtok 函数的使⽤ 12. strerror 函数的使⽤ 13、atoi函数的使用和模拟 正⽂开始 在编程的过程中我们经常要处理字符和字符串为了⽅便操作字符和字符串C语⾔标准库中提供了 ⼀系列库函数接下来我们就学习⼀下这些函数。 1. 字符分类函数 C语⾔中有⼀系列的函数是专⻔做字符分类的也就是⼀个字符是属于什么类型的字符的。 这些函数的使⽤都需要包含⼀个头⽂件是 ctype.h 首先第一个函数原型为 int iscntrl(int c); 检查所传的字符是否是控制字符。 如果 c 是一个控制字符则该函数返回非零值否则返回 0。 例如可以用以下程序判断是否为控制字符 #includestdio.h #includectype.h int main() {char c \a;printf(%d , iscntrl(c));return 0; } 第二个函数的函数原型为 int isspace(int c); 检查所传的字符是否是空白字符。 如果 c 是一个空白字符则该函数返回非零值true否则返回 0false。 例如 #includestdio.h #includectype.h int main() {char c ;printf(%d , isspace(c));return 0; } 第三个函数原型为 int isdigit(int c); 检查所传的字符是否是十进制数字字符。 如果 c 是一个数字则该函数返回非零值否则返回 0。 例如 #includestdio.h #includectype.h int main() {char c 8;printf(%d , isdigit(c));return 0; } 第四个函数原型为 int isxdigit(int c); 检查所传的字符是否是十六进制数字十六进制一般用数字 0 到 9 和字母 A 到 F或 a~f表示其中 A~F 表示 10~15: 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F。 如果 c 是一个十六进制数字则该函数返回非零的整数值否则返回 0。 例如 #includestdio.h #includectype.h int main() {char c 8;printf(%d , isxdigit(c));return 0; } 第五个函数原型为 int islower(int c); 检查所传的字符是否是小写字母。 如果 c 是一个小写字母则该函数返回非零值true否则返回 0false。 例如 #includestdio.h #includectype.h int main() {char c a;printf(%d , islower(c));return 0; } 第六个函数声明为 int isupper(int c); 检查所传的字符是否是大写字母。 如果 c 是一个大写字母则该函数返回非零值true否则返回 0false。 例如 #includestdio.h #includectype.h int main() {char c A;printf(%d , isupper(c));return 0; } 第七个函数原型为 int isalpha(int c); 检查所传的字符是否是字母。 如果 c 是一个字母则该函数返回非零值否则返回 0。 例如 #includestdio.h #includectype.h int main() {char c A;printf(%d , isalpha(c));return 0; } 第八个函数原型为 int isalnum(int c); 检查所传的字符是否是字母和数字。 如果 c 是一个数字或一个字母则该函数返回非零值否则返回 0。 例如 #includestdio.h #includectype.h int main() {char c 5;printf(%d , isalnum(c));return 0; } 第九个函数原型为 int ispunct(int c); 检查所传的字符是否是标点符号字符。 如果 c 是一个标点符号字符则该函数返回非零值true否则返回 0false。 例如 #includestdio.h #includectype.h int main() {char c ,;printf(%d , ispunct(c));return 0; } 第十个函数原型为 int isgraph(int c); 检查所传的字符是否有图形表示法。带有图形表示法的字符是除了空白字符比如 以外的所有可打印的字符。 如果 c 有图形表示法则该函数返回非零值否则返回 0。 例如 #includestdio.h #includectype.h int main() {char c k;printf(%d , isgraph(c));return 0; } 第十一个函数原型为 int isprint(int c); 检查所传的字符是否是可打印的。可打印字符是非控制字符的字符。 如果 c 是一个可打印的字符则该函数返回非零值true否则返回 0false。 例如 #includestdio.h #includectype.h int main() {char c k;printf(%d , isprint(c));return 0; } 上面的代码都十分简单下面来一个题目体会一下字符分类函数 写⼀个代码将字符串中的⼩写字⺟转⼤写其他字符不变。 例如 #include stdio.h #include ctype.h int main() {int i 0;char str[] Test String.\n;char c;while (str[i]){c str[i];if (islower(c))c - 32;putchar(c);i;}return 0; } 运行结果为 2、字符转换函数 C语⾔提供了2个字符转换函数 int tolower ( int c ); //将参数传进去的⼤写字⺟转⼩写 int toupper ( int c ); //将参数传进去的⼩写字⺟转⼤写 上⾯的代码我们将⼩写转⼤写是-32完成的效果有了转换函数就可以直接使⽤ tolower 函 数。 #include stdio.h #include ctype.h int main() {int i 0;char str[] Test String.\n;char c;while (str[i]){c str[i];if (islower(c))c toupper(c);putchar(c);i;}return 0; } 3. strlen的使⽤和模拟实现 函数原型为 size_t strlen ( const char * str ); • 字符串以 \0 作为结束标志strlen函数返回的是在字符串中 \0 前⾯出现的字符个数不包 含 \0 )。 • 参数指向的字符串必须要以 \0 结束。 • 注意函数的返回值为size_t是⽆符号的 易错 • strlen的使⽤需要包含头⽂件 string.h 例如我们看一道程序 #include stdio.h #include string.h int main() {const char* str1 abcdef;const char* str2 bbb;if (strlen(str2) - strlen(str1) 0){printf(str2str1\n);}else{printf(srt1str2\n);}return 0; } 运行结果为 很明显结果与我们的预期不符实际上这是由于strlen函数的返回值导致的size_t的返回值是无符号的整形两个size_t的数相减仍为一个size_t的数所以结果会是一个正数在这一点一定要注意因为比较容易出错。 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 //指针-指针的⽅式 int my_strlen(char* str) {assert(str);char* p str;while (*p !\0)p;return p - str; } 4. strcpy 的使⽤和模拟实现 函数原型为 char* strcpy(char * destination, const char * source ); • 源字符串必须以 \0 结束。 • 会将源字符串中的 \0 拷⻉到⽬标空间。 • ⽬标空间必须⾜够⼤以确保能存放源字符串。 • ⽬标空间必须可修改。 strcpy的模拟实现: char* my_strcpy(char* dest, const char* src) {char* ret dest;assert(dest ! NULL);assert(src ! NULL);while ((*dest *src)){;}return ret; } 5. strcat 的使⽤和模拟实现 函数原型为 char *strcat(char *dest, const char *src) • 源字符串必须以 \0 结束。 • ⽬标字符串中也得有 \0 否则没办法知道追加从哪⾥开始。 • ⽬标空间必须有⾜够的⼤能容纳下源字符串的内容。 • ⽬标空间必须可修改。 • 使用strcat函数不要让字符串给自己追加也就是strcat函数的两个参数不能相同。 模拟实现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; } 6. strcmp 的使⽤和模拟实现 函数原型为 int strcmp(const char *str1, const char *str2) • 标准规定 ◦ 第⼀个字符串⼤于第⼆个字符串则返回⼤于0的数字 ◦ 第⼀个字符串等于第⼆个字符串则返回0 ◦ 第⼀个字符串⼩于第⼆个字符串则返回⼩于0的数字 ⽐较两个字符串中对应位置上字符ASCII码值的⼤⼩。 strcmp函数的模拟实现 int my_strcmp(const char* str1, const char* str2) {int ret 0;assert(str1 ! NULL);assert(str2 ! NULL);while (*str1 *str2){if (*str1 \0)return 0;str1;str2;}return *str1 - *str2; }7. strncpy 函数的使⽤ 函数原型为 char * strncpy ( char * destination, const char * source, size_t num ); • 拷⻉num个字符从源字符串到⽬标空间。 • 如果源字符串的⻓度⼩于num则拷⻉完源字符串之后在⽬标的后边追加0直到num个。 模拟实现 char* my_strncpy(char* dst, const char* src, size_t n) {int i;for (i 0; src[i] i n; i){dst[i] src[i];}if (i n){dst[i] 0;}return dst; } 8. strncat 函数的使⽤ 函数原型为 char *strncat(char *dest, const char *src, size_t n) 将source指向字符串的前num个字符追加到destination指向的字符串末尾再追加⼀个 \0 字 符。 如果source 指向的字符串的⻓度⼩于num的时候只会将字符串中到 \0 的内容追加到destination指向的字符串末尾。 模拟实现 char* my_strcat(char* dst, const char* src, size_t n) {char* tmp dst;while (*dst){dst;}int i;for (i 0; src[i] i n; i){dst[i] src[i];}dst[i] 0;return tmp; } 例如 #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; } 运行结果为 9. strncmp函数的使⽤ 函数原型为 int strncmp ( const char * str1, const char * str2, size_t num ); ⽐较str1和str2的前num个字符如果相等就继续往后⽐较最多⽐较num个字⺟如果提前发现不⼀ 样就提前结束⼤的字符所在的字符串⼤于另外⼀个。如果num个字符都相等就是相等返回0。 用法与strcmp基本一样就是要指定比较前多少项。 10. strstr 的使⽤和模拟实现 函数原型为 char * strstr ( const char * str1, const char * str2); 函数返回字符串str2在字符串str1中第⼀次出现的位置 字符 串的⽐较匹配不包含 \0 字符以 \0 作为结束标志 #include stdio.h #include string.h int main() {char str[] This is a simple string;char* pch;pch strstr(str, simple);strncpy(pch, sample, 6);printf(%s\n, str);return 0; } 运行结果为 strstr的模拟实现 char* strstr(const char* str1, const char* str2) {char* cp (char*)str1;char* s1, * s2;if (!*str2)return((char*)str1);while (*cp){s1 cp;s2 (char*)str2;while (*s1 *s2 !(*s1 - *s2))s1, s2;if (!*s2)return(cp);cp;}return(NULL); } 11. strtok 函数的使⽤ 函数原型为 char * strtok ( char * str, const char * sep); • sep参数指向⼀个字符串定义了⽤作分隔符的字符集合 • 第⼀个参数指定⼀个字符串它包含了0个或者多个由sep字符串中⼀个或者多个分隔符分割的标 记。 • strtok函数找到str中的下⼀个标记并将其⽤ \0 结尾返回⼀个指向这个标记的指针。注 strtok函数会改变被操作的字符串所以在使⽤strtok函数切分的字符串⼀般都是临时拷⻉的内容 并且可修改。 • strtok函数的第⼀个参数不为 NULL 函数将找到str中第⼀个标记strtok函数将保存它在字符串 中的位置。 • strtok函数的第⼀个参数为 NULL 函数将在同⼀个字符串中被保存的位置开始查找下⼀个标 记。 • 如果字符串中不存在更多的标记则返回 NULL 指针。 例如 #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; } 运行结果为 例如 #includestdio.h #includestring.h int main() {char arr[] wangyear,net;char copy[20];strcpy(copy, arr);char sep[] ,;char* ret strtok(copy, sep);printf(%s\n, ret);ret strtok(NULL, sep);printf(%s\n, ret);ret strtok(NULL, sep);printf(%s\n, ret);return 0; } 运行结果为 12. strerror 函数的使⽤ 函数原型为 char * strerror ( int errnum ); strerror函数可以把参数部分错误码对应的错误信息的字符串地址返回来。 在不同的系统和C语⾔标准库的实现中都规定了⼀些错误码⼀般是放在 errno.h 这个头⽂件中说明的C语⾔程序启动的时候就会使⽤⼀个全⾯的变量errno来记录程序的当前错误码只不过程序启动 的时候errno是0表⽰没有错误当我们在使⽤标准库中的函数的时候发⽣了某种错误就会讲对应 的错误码存放在errno中⽽⼀个错误码的数字是整数很难理解是什么意思所以每⼀个错误码都是有对应的错误信息的。strerror函数就可以将错误对应的错误信息字符串的地址返回。 注一次只能打印一个错误。但是错误码可能会发生变化只要是检测出一个与之前不同的错误错误码就会随之改变。 另外编译器报出的是语法错误而这个错误码对应的错误信息是程序运行时的错误。 #include string.h #include stdio.h //我们打印⼀下0到10这些错误码对应的错误信息 int main() {int i 0;for (i 0; i 10; i) {printf(%s\n, strerror(i));}return 0; } 运行结果为 例如 #include stdio.h #include string.h int main() {FILE* pFile;pFile fopen(unexist.ent, r);if (pFile NULL)printf(Error opening file unexist.ent: %s\n, strerror(errno));return 0; } 运行结果为 也可以了解⼀下perror函数perror函数相当于⼀次将上述代码中的第9⾏完成了直接将错误信息打 印出来。 perror函数打印完参数部分的字符串后再打印⼀个冒号和⼀个空格再打印错误信息。这个函数需要头文件stdio.h 例如 #include stdio.h int main() {FILE* pFile;pFile fopen(unexist.ent, r);if (pFile NULL)perror(Error opening file unexist.ent);return 0; } 运行结果为: 13、atoi函数的使用和模拟 函数原型为: int atoi(const char *str) 把参数 str 所指向的字符串转换为一个整数类型为 int 型。 该函数返回转换后的长整数如果没有执行有效的转换则返回零。 模拟实现 #includestdio.h #includeassert.h #includestring.h #includelimits.h #includectype.h int my_atoi(const char* str) {assert(str);if (*str \0)return 0;while (isspace(*str)){str;}int flag 1;if (*str ){flag 1;str;}else if (*str -){flag -1;str;}long long ret 0;while (*str ! \0){if (isdigit(*str)){ret ret * 10 flag * (*str - 0);if (ret INT_MAX || ret INT_MIN){return 0;}}else{return (int)ret;}str;}return (int)ret;} 欢迎读者到评论区留言或者私信。
http://www.dnsts.com.cn/news/30405.html

相关文章:

  • 怎么才能注册做网站设计公司网站案例
  • 城乡建设杂志社官方网站ps在线网页版
  • 北京谁会做网站开发江苏网站seo平台
  • 网站建设需要哪些信息外网搭建
  • 什么是网站开发相亲交友小程序源码
  • 代练中介网站有得做吗建立的意思解释
  • 交互式网站是什么wordpress 欢迎插件
  • 网站没有关键词库上海卖房网站
  • 北京金方网站设计二手网站建设目标
  • 济南网站制作建设厦门人才网招聘最新信息
  • php 网站开发平台商业网站开发需求
  • 利用表单大师做网站网站怎么设计好看的图片
  • 网站头部样式企业网络规划设计
  • 美工网站模板推荐坪地网站建设
  • 连城县建设局网站个人公众号做电影网站吗
  • 江苏齐力建设集团网站用html5做手机网站
  • 旅游网站建设怎么做wordpress文章自动发布功能
  • 如何在vps上建设网站江西网站设计欣赏
  • 什么是a站在局域网内访问本机的asp网站
  • 网站初期缺点网站开发与建设会计分录
  • 个人网站备案材料填写沛县建设工程交易网
  • 昆明做网站费用wordpress网站数据库备份
  • 电子商务网站分类网站建设佰首选金手指十六
  • 白酒网站设计石家庄在线制作网站
  • 做网站网站推广赚佣金网站开发实习总结
  • 中国建设银行安徽省 招聘信息网站软件开发培训班哪个好
  • 可以免费秒玩游戏的网站沈阳网站建设三好街
  • 贵阳网站页面设计沂源网站建设
  • 厦门市建设局网站规划标准服务平台型网站
  • 青岛网站建设代理加盟郑州有做彩票网站的吗