字符串长度解析以及字符串的几种打印方法
字符串
何为字符串,估计很多小伙伴都知道这个东西但不清楚它的定义,其实很简单,就一句话:
由双引号(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, };
结果:
上一篇:
IDEA上Java项目控制台中文乱码