第9讲字符数组 字符数组的定义 二、字符数组的初始化 三、字符数组的输入与输出 四、字符串函数
第9讲 字符数组 一、字符数组的定义 二、字符数组的初始化 三、字符数组的输入与输出 四、字符串函数
、字符数组的定义 字符数组:用来存放字符型数据的数组。 格式: char数组名[常量表达式l,…; char数组名[常量表达式1常量表达式2, 注意: ·字符数组的定义、引用、初始化遵循“数组” 的规定
一、字符数组的定义 字符数组:用来存放字符型数据的数组。 格式: char 数组名[常量表达式],··· ; char 数组名[常量表达式1][常量表达式2],··· 注意: •字符数组的定义、引用、初始化遵循 “数组” 的规定
在字符数组中,每一个元素只能存放一个字符。 二维字符数组,可以看作是一个字符串数组。 例 char a[10],b[30]; char S[10][20],h[20][100];
•在字符数组中,每一个元素只能存放一个字符。 例: char a[10],b[30]; char s[10][20],h[20][100]; •二维字符数组,可以看作是一个字符串数组
二、字符数组的初始化 1、一维字符数组初始化 字符数组的赋值要符合数组的要求,除了在定义时初始 化可以用字符串赋初值,其余只能一个元素一个元素地 赋值。 1)给所有元素赋初值: 例 char s1[7]={s','t','r','i,n','g','!}; char s2[]={'s′,′t′,′r′,i′,′n′,'g′,′!′} 存储形式为: 工
二、字符数组的初始化 字符数组的赋值要符合数组的要求,除了在定义时初始 化可以用字符串赋初值,其余只能一个元素一个元素地 赋值。 1)给所有元素赋初值: 例 char s1[7]={‘s’,’t’,’r’,’i’,’n’,’g’,’!’}; char s2[ ]={‘s’,’t’,’r’,’i’,’n’,’g’,’!’}; 存储形式为: s t r i n g ! 1、一维字符数组初始化
例 char s38}={'s,t,r,i’,n’,g,”’,0} char s48=string,3; char s5 8=string!"; 存储形式为: 七 g 0 说明 C语言中,规定了一个“字符串结束标记”,以字 符’0’代表
例 char s3[8]={’s’,’t’,’r’,’i’,’n’,’g’,’!’,’\0’}; char s4[8]={"string!"}; char s5[8]="string!"; 存储形式为: s t r i n g ! \0 •C语言中,规定了一个“字符串结束标记”,以字 符’\0’代表。 说明:
10’代表ASCⅢ码为0的字符,是一个空操作符,表示 什么也不干。 字符串在实际存储时,系统会自动的在其尾部添加一个 结束标志’0。 在字符数组中,并不要求它最后的一个字符为“0”, 也可以没有“10”。 例: char s5=“ China”; 也是合法的
•在字符数组中,并不要求它最后的一个字符为“\0”, 也可以没有“\0”。 例:char s[5]=“China”; 也是合法的 •字符串在实际存储时,系统会自动的在其尾部添加一个 结束标志’\0’。 •‘\0’代表ASCII码为0的字符,是一个空操作符,表示 什么也不干
2)给部分元素赋初值: 例: char s19=?C,h’,i',’n,’a,”} char s2[9}={C,h’,i,n,’a"’,”’,”03}; char s39={ China!”}; char s4[9=“ China!”; 存储形式为: c hi na 0、o\0
2)给部分元素赋初值: 例:char s1[9]={’C’,’h’,’i’,’n’,’a’,’!’}; char s2[9]={’C’,’h’,’i’,’n’,’a’,’!’,’\0’}; char s3[9]={”China!”}; char s4[9]= “China!”; 存储形式为: C h i n a ! \0 \0 \0
2、二维字符数组初始化 二维字符串数组的初始化,可以采用二维字符数组初始 化形式或者字符串初始化形式 例: char name210={J,o,h’,n”,”0”} y,”10°: char name210={John”3,{ Marry”}; char name210={John”,” Marry”}; 这三种方法效果一样
2、二维字符数组初始化 二维字符串数组的初始化,可以采用二维字符数组初始 化形式或者字符串初始化形式 例: char name[2][10]={{’J’,’o’,’h’,’n’,’\0’}, {’M’,’a’,’r’,’r’,’y’,’\0’}}; char name[2][10]={{”John”},{”Marry”}}; char name[2][10]={”John”,”Marry”}; 这三种方法效果一样
三、字符数组的输入与输出 1利用格式符%c逐个输入、输出字符: 例: char str10; nt for(i=0;i<9;i++) scanf(%oc",&striD; for(i=0;i<9;i+) printf( %oc", striD;
三、字符数组的输入与输出 1.利用格式符%c逐个输入、输出字符: 例:char str[10]; int i; for ( i=0; i<9; i++ ) scanf("%c",&str[i]); for ( i=0; i<9; i++ ) printf("%c", str[i]);
2利用格式符%s,可以一次输入、输出字符串。 %s:遇第一个空白符(空格、Tab、回车)结束输入, 遇第一个“0’结束输出。 例: char str10; scanno/os, str ) printf("%sⅦm",str); 输入: program 输出: progra
2.利用格式符%s,可以一次输入、输出字符串。 例: char str[10]; scanf("%s",str ); printf("%s\n", str ); %s:遇第一个空白符(空格、Tab、回车)结束输入, 遇第一个‘\0’结束输出。 输入:program 输出:program