在了解了数组的基本概念后,C语言数组中的其中一个重要学习点便是字符数组和字符串。那么什么是C语言中的字符数组和字符串呢?它的作用又是什么呢?下面课课家小编就带大家了解字符数组和字符串的含义和作用。
所谓字符数组,简单来说就是用来存放字符的数组称为字符数组,比如:
chara[10];//一维字符数组
charb[5][10];//二维字符数组
charc[20]={'c','','p','r','o','g','r','a','m'};//给部分数组元素赋值
chard[]={'c','','p','r','o','g','r','a','m'};//对全体元素赋值时可以省去长度
字符数组实际上是一系列字符的集合,也就是字符串(String)。在C语言中,没有专门的字符串变量,没有string类型,通常就用一个字符数组来存放一个字符串。在C语言中规定,我们可以将字符串直接赋值给字符数组,比如:
charstr[30]={"c.biancheng.NET"};
charstr[30]="c.biancheng.net";//这种形式更加简洁,实际开发中常用
数组第0个元素为'c',第1个元素为'.',第2个元素为'b',后面的元素以此类推。也可以不指定数组长度,比如:
charstr[]={"c.biancheng.net"};
charstr[]="c.biancheng.net";//这种形式更加简洁,实际开发中常用
在C语言中,字符串总是以'\\0'作为串的结束符。上面的两个字符串,编译器已经在末尾自动添加了'\\0'。'\\0'是ASCII码表中的第0个字符,用NUL表示,称为空字符。通常情况下该字符既不能显示,也不是控制字符,输出该字符不会有任何效果,它在C语言中仅作为字符串的结束标志。puts和printf在输出字符串时会逐个扫描字符,直到遇见'\\0'才结束输出。具体大家可以观察下面的代码:
#include
intmain(){
inti;
charstr1[30]="http://c.biancheng.net";
charstr2[]="CLanguage";
charstr3[30]="Youareagood\\0boy!";
printf("str1:%s\\n",str1);
printf("str2:%s\\n",str2);
printf("str3:%s\\n",str3);
return0;
}
运行结果:
str1:http://c.biancheng.net
str2:CLanguage
str3:Youareagood
str1和str2很好理解,编译器会在字符串最后自动添加'\\0',并且数组足够大,所以会输出整个字符串。对于str3,由于字符串中间存在'\\0',printf()扫描到这里就认为字符串结束了,所以不会输出后面的内容。
此时我们需要注意的地方是,用字符串给字符数组赋值时由于要添加结束符'\\0',数组的长度要比字符串的长度(字符串长度不包括'\\0')大1。比如:
charstr[]="Cprogram";
该数组在内存中的实际存放情况为9(图1):
图1
字符串长度为9,数组长度为10。
本次简单分析C语言中的字符数组和字符串的教程到此暂告一段落,如果以后有补充的话小编会在此继续补充,同时也欢迎大家继续补充。最后希望这次的教程对大家学习C语言能起到一定的帮助!
¥25.00¥49.00
¥150.00
¥100.00
¥98.00