C++编程入门 互动版

字符数组的初始化

字符数组进行初始化的方法有两种。第一种,例如:

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码值最大的字符串。