花都 网站建设,智库门户网站建设,网站的优点和缺点,市场推广工作内容前言#xff1a; 在做OJ题或阅读代码时或多或少会遇到一些字符函数和字符串函数#xff0c; 如果不认识或不熟悉就会造成不便#xff0c; 本篇文章主要是为了这方面而存在#xff0c; 此篇介绍各个字符串的功能与使用方法#xff0c; 下一篇会讲解如何模拟这些函数 重点 在做OJ题或阅读代码时或多或少会遇到一些字符函数和字符串函数 如果不认识或不熟悉就会造成不便 本篇文章主要是为了这方面而存在 此篇介绍各个字符串的功能与使用方法 下一篇会讲解如何模拟这些函数 重点 重点介绍处理字符和字符串的库函数的使用和注意事项 一一一一一一一一分割线一一一一一一一一一 目录 1.函数介绍1.1 strlen1.2 strcpy1.3 strcat1.4 strcmp 2.库函数的模拟实现 1.函数介绍
1.1 strlen 我们可得这个函数是求在字符串开始与\0之间的字符串长度 代码示例
#include stdio.h
int main()
{const char* str1 abcdef;const char* str2 bbb;printf(%d\n, strlen(str1));printf(%d\n, strlen(str2));if (strlen(str2) - strlen(str1) 0){printf(str2str1\n);}else{printf(srt1str2\n);}return 0;
}结果 解释 这里的6和3容易理解那么str2str1怎么解释 因为strlen返回值类型为size_t类型为无符号整形 即相减的结果虽然为一个负数但负数的无符号整形显然是巨大的正数 故大于 此函数的注意事项 1.字符串以 ‘\0’ 作为结束标志strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数不包含 ‘\0’ )。 2.参数指向的字符串必须要以 ‘\0’ 结束。 3.注意函数的返回值为size_t是无符号的 易错 一一一一一一一一分割线一一一一一一一一一
1.2 strcpy 我们可以知道此函数是为了拷贝字符串的 代码示例
#includestring.hint main()
{char str1[20] { 0 };char str2[] hello world;strcpy(str1, str2);printf(%s\n, str1);return 0;
}结果 此函数的注意事项 1.源字符串必须以 ‘\0’ 结束。 2.会将源字符串中的 ‘\0’ 拷贝到目标空间。 3.目标空间必须足够大以确保能存放源字符串。 4.目标空间必须可变。 一一一一一一一一分割线一一一一一一一一一
1.3 strcat 上边两个函数很容易就可以根据形式看出大概意思 str代表字符串那么cat代表什么 他代表Catenate连接的缩写也就是追加字符串的意思 代码示例
int main()
{char str1[20] abc;char str2[] dfg;strcat(str1, str2);printf(%s\n, str1);return 0;
}结果 此函数的注意事项 1.源字符串必须以 ‘\0’ 结束。 2.目标空间必须有足够的大能容纳下源字符串的内容。 3.目标空间必须可修改。 4.不可以自己追加自己。 解释关键在于 \0因为 一一一一一一一一分割线一一一一一一一一一
1.4 strcmp 我们可以得出此函数是为为比较字符串函数 代码示例
int main()
{char str1[] abb;char str2[] abc;int ret strcmp(str1, str2);printf(%d\n, ret);return 0;
}此函数的注意事项 1.第一个字符串大于第二个字符串则返回大于0的数字 2.第一个字符串等于第二个字符串则返回0 3.第一个字符串小于第二个字符串则返回小于0的数字 4.比较字符串是从头开始逐一比较每个字符的ASCII码值相等就继续向下比较直到输出 努力更新中。。。
2.库函数的模拟实现
努力更新中。。。