一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
函数介绍
求字符串长度:
strlen
长度不受限制的字符串函数:
strcpy
strcat
strcmp
长度受限制的字符串函数介绍:
strncpy
strncat
strncmp
字符串查找:
strstr
strtok
错误信息报告:
strerror
正文开始~
1.strlen
功能:计算字符串s的长度
说明:返回s的长度,不包括结束符NULL。
size_t strlen(const char* str);
1.字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0'前面出现的字符个数(不包含'\0')
2.参数指向的字符串必须要以'\0'结束
3.函数的返回值为size_t,是无符号的
例:
int main()
{
int len = strlen("abcdef");
printf("%d\n", len);
return 0;
}
输出值为:6
int main()
{
char arr[] = { 'a','b','c','d','e','f' };
int len = strlen(arr);
printf("%d\n", len);
return 0;
}
输出值为;随机值
实现strlen函数的方法:
//1.计数器的方法 如下
//2.递归(不创建临时变量求字符串长度)
//3.指针减指针
模拟实现:
#include<assert.h>
int my_strlen(const char* str)
{
int count = 0;
assert(str != NULL);
while (*str != '\0')//while(*str)
{
count++;
str++;
}
return count;
}
int main()
{
int len = my_strlen("abcdef");
printf("%d\n", len);
return 0;
}
2.1 strcpy
功能:把src所指由NUL结束的字符串复制到dest所指的数组中。
返回指向dest结尾处字符(NUL)的指针。
char* strcpy(char* destination, const char* source);
1.源字符串必须以 '\0'结束
//错误的示范
char arr2[] = {'a','b','c'};
2.会将源字符串中的'\0'拷贝到目标空间
3.目标空间必须足够大,以确保可以存放源字符串