字符串长度解析以及字符串的几种打印方法

字符串

何为字符串,估计很多小伙伴都知道这个东西但不清楚它的定义,其实很简单,就一句话:

由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。 注意:字符串不是一种数据类型哟,数据类型有:整形,浮点型,字符型.......

“i love you” 这就是一个字符串,我们必须注意,每个字符串都有一个结束标志,即,好了,那大家觉得我举出的这个字符串的大小为多少呢? 可能答案:8 10 11 多说无益,先上一段代码把结果呈现给大家:

#include<stdio.h>
#include<string.h>    //用strlen函数需添加头文件 
int main()
{
	char s[]="i love you";          //将字符串存放于一个char型的数组 
	printf("%d",strlen(s));        //strlen函数用来测字符串长度 
	return 0;
}

结果: 大家可以看到,结果为十,为八的数落下的2个空格,为11的把也算入字符串长度里了,所以根据以上结果,字符串长度不计入末尾的。

字符串的打印 想要打印字符串,则先应将它存储起来,存放字符串常用方法为将它存放在一个字符型的数组里面,还可以将一个指针指向一个字符串的首地址,下面呈上一段详细代码:

#include<stdio.h>
int main()
{
	/*三种存放方法*/
	char d[] = { i,  , l, o, v, e,  , y, o, u };
	char s[] = "i love you";          //将字符串存放于一个char型的数组 
	char *p = "i love you";

	printf("%s
", s);    //正确输出  1
	printf("%s
", p);    //正确输出  2

	printf("%s
",d);  //错误输出

	for (int i = 0; i<sizeof(d)/sizeof(d[0]); i++)  //正确输出  3
		printf("%c", d[i]);

	return 0;
}

结果:

从代码中可以看到三种存放方法,那为啥第一种方法的输出会输出错误码呢。 其实原因就是在第一种存放中,末尾没有手动添加一个的字符,所以没有结束标志,就会乱码,第二种是因为字符串末尾会自动以结束,所以输出正确。 正确输出3则是一个一个打印出来,不需要添加。

下面是添上后的代码:

char d[]={i, ,l,o,v,e, ,y,o,u,};

结果:

经验分享 程序员 微信小程序 职场和发展