字符数组的初始化
字符数组进行初始化的方法有两种。第一种,例如:
char str[7]="string";
编译程序将自动在串尾加上'\0',也就是a[0]='s',a[1]='t',a[2]='r',a[3]='i',a[4]='n',a[5]='g',a[6]='\0'。另一种是:
char str[7]={'s','t','r','i','n','g','\0'};
两种方式都可以不给出长度,直接用[]。与数值数组的区别是字符串以'\0'结束。
字符数组的输入输出
#include <iostream>
using namespace std;
int main()
{
char str[11];
int i;
for(i=0;i<10;i++)
cin>>str[i];
for(i=0;i<10;i++)
cout<<str[i];
cout<<endl;
return 0;
}
注意上面代码输入字符不能使空格,否则会跳过空格,例如输入I am child,输出为Iamchild。同时输出时,不会输出'\0',从前到后,遇到第一个'\0'时输出结束。
常用的字符处理函数
常用的字符处理函数如下表:
特别注意一下strcpy函数。字符数组在初始化时,可以用字符串常量,例如:char str[7]="string";但是声明完,再赋值时就会报错,下面的赋值方法就是错误的:
char str[10];
str="computer";
此时应该这些写:
char str[10];
strcpy(str,"computer");
二维字符数组
二维字符数组,简单来说就是由多个字符串组成的数组。声明格式为:char 数组名[字符串数量][字符串最大长度];例如:char str[3][10];说明str有三个字符串,每个字符串的最大长度为9个字符。二维字符数组初始化方法举例:
char str[3][4]={"abc","def","ghi"};
在右侧代码框中编写程序:用户输入10个字符串,每个字符串长度最大为20,输出其中ASCII码值最大的字符串。