对字符串及其函数strlen的理解(值得1看)

目录

文章目录

前言

一、字符串

二、strlen

功能:

最后给大家一行代码大家自己拿去运行

总结


前言

本人是主要是将自己对最近学习的知识进行一定总结,如果在你闲暇之时你偶然看到此博客,希望对你有所帮助,最后也不妨点个赞再走。

一、字符串

我们直接上代码

int main()
{
	char arr1[] = { "hello" };             //定义两个char类型的数组
	char arr2[] = { 'h','e','l','l','o' };
	printf("%s\n", arr1);                  //打印连个数组
	printf("%s",arr2);
	return 0;
}

我们看运行结果

对字符串及其函数strlen的理解(值得1看)_第1张图片

为什么会产生这种结果呢

很明显我们的的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;
}

我们的打印结果就正常了

对字符串及其函数strlen的理解(值得1看)_第2张图片

二、strlen

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;
}

对字符串及其函数strlen的理解(值得1看)_第3张图片

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;
}

对字符串及其函数strlen的理解(值得1看)_第4张图片

arr2计算的长度也为5了。

我们也可以这样写代码

int num=strlen("hello");

此时num也就被赋值为5了;

最后给大家一行代码大家自己拿去运行

printf("%d",strlen("\0"));

自己看看运行的结果,嘿嘿~


总结

字符串的最简单的使用方法,我也只介绍到这,最好也在自己的vs中敲一下

文中讲述可能有些不是很清楚

不懂的地方也可以私信我,都看到这了,点个赞呗~!

你可能感兴趣的:(开发语言,c语言)