目录:
求字符串长度 strlen
长度不受限制的字符串函数 strcpy strcat strcmp
长度受限制的字符串函数 strncpy strncat strncmp
字符串查找 strstr strtok
错误信息报告 strerror
字符操作
前言:大家也可以通过cplusplus这个网站搜索C语言中的字符函数
一.strlen
统计字符串中\0之前字符个数
![](https://img-blog.csdnimg.cn/img_convert/c3bde3627e13000323c04b13d5be24e6.png)
参数为char *,返回类型为无符号整型
#include <assert.h>
//模拟实现strlen
size_t my_strlen(const char* str)
{
assert(str);//断言,确保str不是空
const char* start = str;
const char* end = str;
while (*end != '\0')
{
end++;
}
return end - start;
}
int main()
{
char arr[] = "abcdef";
int len = my_strlen(arr);//测试
printf("%d\n", len);
return 0;
}
二.长度不受限制的字符串函数 strcpy strcat strcmp
长度不受限制指该类函数只考虑\0,不考虑长度
strcpy
![](https://img-blog.csdnimg.cn/img_convert/749998114839d9e1d1272379b945bed1.png)
注意:拷贝时源字符串必须包含\0,以\0结尾,会将\0拷贝到目标字符串,目标字符串足够大,且可变
char* my_strcpy(char* dest, const char* src)//模拟实现strcpy
{
assert(dest);
assert(src);
char* ret = dest;
while (*dest++ = *src++)
{
;
}
return ret;
}
int main()
{
char arr1[20] = "abc";
char arr2[] = "hello bit";
printf("%s\n", my_strcpy(arr1, arr2));
return 0;
}
strcat
![](https://img-blog.csdnimg.cn/img_convert/0966353881f0164cbbf44157d5616c46.png)
字符追加函数,不能在字符串后追加其本身。
char* my_strcat(char* dest, const char*src)
{
//1.找目标空间中的\0
char* cur = dest;
while (*cur)
{
cur++;
}
//2.拷贝源头数据到\0之后的