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

1.字符数组和字符串

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

字符串常量

字符常量

双引号

单引号

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

字符A仅占一个存储单

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

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

例如

char str(10)=('C','+','+','p,’r,'o,'g','r','a’,’m’}//用这种方法对字符数组进行初始化时,可以不指定字符数组的长度
 给字符数组指定一个字符串初值,系统将自动在最后一个字符后加一个字符’\0’。例如:char str[]=[“C++program”)相当于char str[ll]=(c',+',"+',"'p','r','o','g','x','a','m','\0’)
字符数组的长度为11,而不是10。且存放字符串时必须保证数组长度一定大于字符串长度。

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

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

for (i=0; i<5: i++) cin>>a[i];
输入字符串时,遇到空格字符或换行字符( Enter键),认为一个字符串结束,接着的非空格字符作为一个新的字符串开始;并且系统自动会在每一个字符串后加一个’\0’。

当要把输入的一行(包括空格字符)川作为一个字符串送到字符数组中时,则要使用函数cin.getline()的语法格式如下:cin.get1ine(字符数组名str,字符个数n,结束符=’\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。
说明:

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

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

(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之后的’\0’取消,只在新字符串最后保留一个’\0’.

(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值大小相比较),直到出现不同的字符或遇'\0'为止。

说明:

  • 字符串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};
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值