????前言????
这篇博客我们来介绍下字符串函数的使用,可能对字符串函数的使用大多人刚开始学习会学习了一段时间只是知道几种字符串函数的使用 像 strlen()、strcpy()、strcat()、strcmp()、这四种字符串库函数的使用。而字符串函数绝对不仅仅只有这四种库函数,实际上字符串函数可以说是"五花八门"了,在这篇博客当中我就会详细介绍字符串函数的各种使用。
在使用C语言的字符串库函数的时候记得要添加相应的头文件#include<string.h>
????strlen() - 计算字符串长度????
strlen() 函数的声明方式如下 ????
size_t strlen ( const char * str );
获取字符串长度。
返回 C 字符串 str 的长度。
str → 要计算长度的字符串。
字符串的'\0'作为结束标志,strlen函数的返回值是在字符串中出现的字符个数(不包含'\0')
注意:函数的返回值是无符号的 unsigned 容易出错の。
Size_t→是一个无符号(unisgned int)整型类型。
????→strlen的工作原理:只要给我个地址,那么strlen就可以向后数字符,至到遇到'\0'就会停止。
????strlen()函数代码示例????
使用 strlen() 函数代码示例如下 ????
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[20] = {"44778899"};
int len = strlen(str);
printf("%s 的长度是 %d\n", str, len);
return(0);
}
运行结果如下→44778899 的长度是 8
当然我们还要注意:char str[] = {'a','b','c'};如果是这样的话就没有'\0',那么产生的就是随机值!还是按照上面的代码进行演示。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[] = {'a','b','c'};
int len = strlen(str);
printf("%s 的长度是 %d\n", str, len);
return(0);
}
这样的运行结果就会是随机值,因为我们不知道反斜杠'\0'在哪里。
????创建自定义函数实现strlen()的功能????
示例代码如下:????
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>//assert的头文件
int My_strlen(const char *arr)
{
unsigned int Count = 0;//统计字符不可能是为负数的!
assert(arr!=NULL);//这里加入到断言就能确保我们输入字符串的时候不会是空指针
while (*arr != '\0')
{
Count++;
*arr++;
}
return Count;//返回计算机长度
}
int main(void)
{
char enter[20] = { 0 };
printf("请输入字符串->:");
scanf("%s", &enter);
int ret = My_strlen(enter);
printf("The total number of input strings:%d\n",ret);
return 0;
}
运行结果如下 ????
请输入字符串:C语言天下第一
The total number of input strings:7