C++数组二(字符数组)

1.字符数组和字符串

字符数组是用来存放字符数据的数组,就是说,字符数组中的每个元素存放一个字符,字符数组也可以用来存放字符串。

字符串常量

字符常量

双引号

单引号

字符常量符串“A”占2个存储单元(多了’0’)

字符A仅占一个存储单

1)字符数组的定义格式如下:char数组名[常量表达式]

(2)字符数组的初始化赋值给字符数组的各个元素逐个赋初值

例如

char str(10)=('C','+','+','p,’r,'o,'g','r','a’,’m’}//用这种方法对字符数组进行初始化时,可以不指定字符数组的长度

 给字符数组指定一个字符串初值,系统将自动在最后一个字符后加一个字符’’。
例如:

char str[]=[“C++program”)相当于char str[ll]=(c',+',"+',"'p','r','o','g','x','a','m','’)

字符数组的长度为11,而不是10。且存放字符串时必须保证数组长度一定大于字符串长度。

2.字符数组的输入/输出

char a[5];cin>>a;//只适合用于字符数组
 或者
char a[5];int i;

for (i=0; i<5: i++) cin>>a[i];

输入字符串时,遇到空格字符或换行字符( Enter键),认为一个字符串结束,接着的非空格字符作为一个新的字符串开始;并且系统自动会在每一个字符串后加一个’’。

当要把输入的一行(包括空格字符)川作为一个字符串送到字符数组中时,则要使用函数cin.getline()的语法格式如下:cin.get1ine(字符数组名str,字符个数n,结束符=’ ’);该函数的第一个参数st为字符数组名,第二个参数n为允许输入的最大字符个数
功能:一次连续读入多个字符(可以包括空格,直到读满n个,或遇到指定的结束符(默认为n)。读入的字符串存放于字符数组str中。读取但不存储结束符。例如char s[121;cin.getline(s, 12);

字符输出可以采用一个字符循环输出:

for (i=0; i<5: i++) cout<<a[i];

 3.字符串处理函数

C+++提供的兼容C语言字符串处理函数包含在头文件<cstring>中

1求字符串长度函数srln()

格式:sren(字符串)

功能:计算字符串的长度。
例如:

char str[lol ="china"cout<<strlen(str)<< endl;则屏幕输出应该是5,而不是10。
cout <<strlen("C++program")<< endl;则屏幕输出字符串长度为10。

 说明:

字符串可以是字符数组名,也可以是字符串常量

函数值为字符串的实际长度,不包括最后的’’在内

(2).字符串连接函数strcat()

格式:strcat(字符数组1,字符串2)

功能:将字符串2连接到字符数组1中的字符串后,其结果存放在字符数组1中。

例如

char str[30]=”I am a”char str2[]=”student”;strcat(strl,str2);//则字符数组s1的内容为 I am a student。

 说明:

字符数组1必须是字符数组名,字符串2可以是字符数组名,也可为字符串常量。
字符数组1必须足够大,以便容纳连接后的新字符串。
连接时字符串1之后的’’取消,只在新字符串最后保留一个’’.

3).字符串复制函数strncpy()

格式: strncpy(字符数组1,字符串2)
功能:将字符串2完全复制到字符串1,即字符串1和字符串2内容完全一样。这里有几点需要说明字符串1足够大,能够容纳。

说明

字符串2可以是字符串常量,也可以是字符数组。
不能用赋值语句将字符串常量或字符数组给字符数组赋值,只能用strcpy函数。
可以用strcpy函数将字符串2中前面若干个字符复制到字符串1中

例如:strcpy(str1,str2,2),如果str2=’China’,那么str1=‘Ch’。

4.字符串连接函数 strcmp() strncmp()
格式:strcmp/strncmp(字符串1,字符串2)

strcmp():strcmp(s1,s2);            比較两个字符串。
       strncmp():strncmp(s1,s2);       比較两个字符串前n位

假设出现不同的字符,则对第一次出现不同的字符进行比較。比較方法是以s1的第一个不同的字符减去s2的第一个不同的字符。以所得差值作为返回值(大于0。则返回1,小于0则返回。

功能:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇''为止。

说明:

字符串1和字符串2可以是字符串常量,也可以是字符数组名。

比较两个字符串,不能用==。

5.字符串大小写转换函数strlwr()struper()

格式Strlwr(字符数组)

   struper(字符数组)

例如

 char str[]=”CHINA”;
Strlwr(str);

此时str中内容变为“china”

4.二维字符数组

格式:

char 数组名[常量表达式1],[常量表达式2];

例如:

char a[2][2]={a,b},[c,e];

char a[2][2]={ab,cd};
原文地址:https://www.cnblogs.com/CX66/p/13898877.html