前言
C语言本身没有字符串类型,字符串要么放到字符数组里面,要么就放到一个常量字符串中,常量字符串适用于那些对它不做修改的字符串函数。(如果它能成为字符串,那么说明他的末尾一定放了一个‘\0’)
1.求字符串长度
strlen
注意(返回size_t为unsigned int)
代码示例
解释
两个无符号数相减得到的结果依然为无符号数。
2.不受长度限制的字符串函数,以‘\0’作为结束标志
1.strcpy
2.strcat
my_strcat的实现
bug分析
3.strcmp
my_strcmp的实现代码
my_strcmp1(const char* str1, const char* str2)
{
while (*str1>='\0'&&*str2>='\0')
{
if (*str1 > *str2)
return 1;
if (*str1 < *str2)
return -1;
if (*str1 == *str2)
{
if (*str1 != '\0')
{
str1++;
str2++;
}
else
return 0;
}
}
}
my_strcmp2(const char* str1, const char* str2)
{
while (*str1 == *str2)
{
if (*str1== '\0')
return 0;
str1++;
str2++;
}
if (*str1 > *str2)
return 1;
else
return -1;
}
main()
{
char arr1[30] = "hello";
char arr2[] = "hello";
int ret=my_strcmp(arr1, arr2);
printf("%d\n", ret);
}
3.长度受限制的字符串函数
1.strncpy
2.strncat
定义时的源码
3.strncmp
解释
4.字符串查找
1.strstr
my_strstr的实现
代码一
char* my_strstr(const char* p1, const char* p2)
{
assert(p1&&p2);
if (*