目录
1.strlen()函数功能 2.strlen()函数的使用 2.1 数组 3.注意事项
1.strlen()函数功能
strlen()函数 用于 计算 指定字符串的 长度,但 不包括 结束字符(打印字符串长度)。
2.strlen()函数的使用
切记添加头文件 #include
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
int main()
{
char arr1[] = "abc";// "abc" -- 'a' 'b' 'c' '\0'
printf("字符串arr1的数据长度为:%d\n", strlen(arr1));
return 0;
}
运行结果
方法二:利用 ifelse语句 比较字符串长度大小,并输出结果
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
int main()
{
char arr1[] = "abcdef";// 定义并初始化含有6个元素的字符型数组
char arr2[] = "abc";// 定义并初始化含有3个元素的字符型数组
if (strlen(arr2) - strlen(arr1) > 0)// 将数组arr2[]的长度减去数组arr1[]的长度,得到一个常量与0比较
{
printf("arr2>arr1\n");// 数组arr2[]的长度大则输出此条语句
}
else printf("arr2 return 0; } 运行结果 方法三:将数据存入数组后,计算数据长度,并连同数组一起打印 #define _CRT_SECURE_NO_WARNINGS 1 #include #include int main() { char name[10]; int num; strcpy(name, "Gavin");// 把含有'\0'结束符的字符串"Gavin"复制到name所在的地址空间 num = strlen(name);// 计算name[]数组长度 printf("My name is %s.It's %d words long\n", name, num);//打印信息 return(0); } 运行结果 3.注意事项 以下通过两个程序来举例 例1: #define _CRT_SECURE_NO_WARNINGS 1 #include #include int main() { char arr1[] = "abc";// "abc" -- 'a' 'b' 'c' '\0' // '\0'是字符串的结束标志 char arr2[] = {'a', 'b', 'c'};// 'a' 'b' 'c' printf("%s\n", arr1); printf("%d\n", strlen(arr1)); printf("%s\n", arr2); printf("%d\n", strlen(arr2)); return 0; } 输出结果中出现乱码 例2: #define _CRT_SECURE_NO_WARNINGS 1 #include int main() { char arr1[] = "abc";// "abc" -- 'a' 'b' 'c' '\0' // '\0'是字符串的结束标志 char arr2[] = {'a', 'b', 'c', 0};// 'a' 'b' 'c' '\0' printf("%s\n", arr1); printf("%d\n", strlen(arr1)); printf("%s\n", arr2); printf("%d\n", strlen(arr2)); return 0; } 输出结果能够正常得到预期结果 结论:字符串的结束标志是一个" \0 "的转义字符。在计算字符串长度的时候" \0 "是结束标志,不算字符串内容。如果没有结束标志,则程序可能沿着数组在内存中的位置不断向前寻找,直到遇见空字符才会停止。 —————————END————————— 往期回顾 ★C语言学习6:数据类型 -> 基本类型 -> 整型类型(int、short int、long int、char等) ★C语言学习7:ASCII码表及用法简介 ★C语言学习8:全局变量和局部变量 ★C语言学习9:This function or variable may be unsafe. (Visual Studio 2013关于scanf函数报错的解决办法) ★C语言学习10:数组