目录
文章目录
前言
一、字符串
二、strlen
功能:
最后给大家一行代码大家自己拿去运行
总结
本人是主要是将自己对最近学习的知识进行一定总结,如果在你闲暇之时你偶然看到此博客,希望对你有所帮助,最后也不妨点个赞再走。
我们直接上代码
int main()
{
char arr1[] = { "hello" }; //定义两个char类型的数组
char arr2[] = { 'h','e','l','l','o' };
printf("%s\n", arr1); //打印连个数组
printf("%s",arr2);
return 0;
}
我们看运行结果
为什么会产生这种结果呢?
很明显我们的的arr1时用的 " " 的形式输入hello,而arr2去却是用 ' ' 一个一个输入的h e l l o。会发生什么问题呢?
第一方式我们会直接默认在hello后面加上一个/0;而我们用 ' ' 的方式就只单独输入一个字符,每个单独的字符加起来组成一个字符串。而这种方式却不会默认添加\0
而我们的%s是读到第一个/0处,所以第二种会打印出乱码。
我们怎么解决这种问题呢?
我们只需要在arr2中最后添加一个'\0',就行了。我们看代码
int main()
{
char arr1[] = { "hello" }; //定义两个char类型的数组
char arr2[] = { 'h','e','l','l','o','\0' };
printf("%s\n", arr1); //打印连个数组
printf("%s",arr2);
return 0;
}
我们的打印结果就正常了
1. 首先strlen是一个库函数,我们能直接使用,但是得声明头文件
#include
size_t strlen ( const char * str );
返回类型为无符号整型,参数为const char*
为方便大家理解,我直接用口头语言阐述。就是给括号里一个字符串,strlen帮你计算有几个字符。
返回类型
strlen的功能,在这我们只讨论最简单的功能,就是读取字符串的长度,一直读到第一个'\0',不计算\0。在这我们不讨论其中含有转义字符的情况。
我们直接看代码
int main()
{
char arr1[] = { "hello" }; //定义两个char类型的数组
char arr2[] = { 'h','e','l','l','o' };
printf("%d\n", strlen(arr1)); //strlen计算字符大小
printf("%d\n", strlen(arr2));
return 0;
}
arr1很好理解只有5个字符所以就就返回5(无符号整型)
而arr2没有'\0',所以返回的是随机值。
这时我们只需要在arr2中添加一个'\0',也会返回5
如:
int main()
{
char arr1[] = { "hello" }; //定义两个char类型的数组
char arr2[] = { 'h','e','l','l','o','\0'};
printf("%d\n", strlen(arr1)); //打印连个数组
printf("%d\n", strlen(arr2));
return 0;
}
arr2计算的长度也为5了。
我们也可以这样写代码
int num=strlen("hello");
此时num也就被赋值为5了;
printf("%d",strlen("\0"));
自己看看运行的结果,嘿嘿~
字符串的最简单的使用方法,我也只介绍到这,最好也在自己的vs中敲一下
文中讲述可能有些不是很清楚
不懂的地方也可以私信我,都看到这了,点个赞呗~!