第10章字符串10.1字符串常量10.2(重点)如何表示字符串变量10.3字梦串的输入输出10.4字符指针与字符串(重点)10.5字符串处理函数10.6,程序举例
10.1 字符串常量 10.2 如何表示字符串变量(重点) 10.3 字符串的输入输出 10.4 字符指针与字符串 10.5 字符串处理函数(重点) 10.6 程序举例 第10章 字符串
10.1字符串常量一P221字符串常量:用双引号括起来的部分----是字符串常量。例如:"abc""Hello!""a+b"字符串常量"abc"在内存中占4个字节,而不是3个字节。97980990ba字符串常量"abcln"包含4个字符,占5个字节。b10nca注意1:字符串用双引号括起来如:"a"一是字符串常量、‘a'是字符常量注意2:C语言规定"10'为“字符串结束标志”,系统自动在后面加一个"0注意3:在程序中一般是通过检测0的位置来判定字符串是否结束注意4:字符串常量-被处理成一个无名的字符型一维数组
字符串常量:用双引号括起来的部分-是字符串常量。 例如: "abc" "Hello! " "a+b" ➢字符串常量"abc"在内存中占4个字节,而不是3个字节。 ◆ 字符串常量"abc\n"包含4个字符,占5个字节。 注意1:字符串用双引号括起来。 如:"a"—是字符串常量、'a'是字符常量 注意2:C语言规定'\0'为“字符串结束标志”,系统自动在后面加一个'\0' 。 注意3:在程序中一般是通过检测'\0'的位置来判定字符串是否结束。 注意4:字符串常量-被处理成一个无名的字符型一维数组。 10.1 字符串常量—P221
10.2字符数组的定义与引用一--P223用来存放字符数据的数组。>字符数组:>定义字符数组:例1:ch[5]={a',"b,c";//定义5个元素的字符数组chcharch[0]ch[1]ch[2]ch[3]ch[4]1010baC例2:char st[2][20]={"Zhang","Wang Lei"}; /用二维字符数组存放多个姓名236701458919C10zh1010101010ang-WL101010ange
10.2 字符数组的定义与引用 –-P223 ➢字符数组:用来存放字符数据的数组。 ➢定义字符数组: 例1:char ch[5]={'a' , 'b' , 'c'}; //定义5个元素的字符数组ch 例2: ch[0] ch[1] ch[2] ch[3] ch[4] a b c \0 \0 char st[2][20]={"Zhang", "Wang Lei"}; //用二维字符数组存放多个姓名 0 1 2 3 4 5 6 7 8 9 . 19 0 Z h a n g \0 \0 \0 \0 \0 . \0 1 W a n g L e i \0 \0 . \0
字符数组的初始化:1、定义时初始化例1:chara[3]={*",%',@}, b[3];/ /对/错误---数组名b是地址常量,不能修改b=a;1//正确,引用数组元素。b[0]=a[0];for (i=0;i<=2;i++)b[i]=a[i];//正确,引用数组元素。2、字符数组定义后,可以给元素赋值,但不能对整个数组赋值。例2:char ch[5];Ⅱ正确,对数组元素赋值ch[2]='a'; ch[3]='b';1ch='C',"h,"i,‘n','a";//错误一数组名ch是地址常量2
1、定义时初始化 例1:char a[3]={'*' , '%' , '@'},b[3];//对 ① b=a; //错误-数组名b 是地址常量,不能修改 ② b[0]=a[0]; //正确,引用数组元素。 ③ for (i=0;i<=2;i++) b[i]=a[i]; //正确,引用数组元素。 2、字符数组定义后,可以给元素赋值,但不能对整个数组赋值。 例2:char ch[5]; ① ch[2]= 'a'; ch[3]='b'; // 正确,对数组元素赋值 ② ch={'C' , 'h' , 'i' , 'n' , 'a'}; // 错误—数组名ch是地址常量 字符数组的初始化:
讨论1:字符串与字数组的关系1、例1: char st={"China"};chi10na②char st="China";③char st=tc',h',i,'n',a',lo';结论1:①②③等价一-含义:定义字符数组st,st长度是6结果:将字符串常量"China”赋给数组st。结论2:3字符串常量可以给字符数组初始化。(如①②)2、区别:系统自动在字符串末尾加一个10表示结束:而字符数组并不要求最后一个字符一定是10',甚至可以没有"10'。chan例2:char st={'C',"h',"i',‘n','a'}lI对,st长度是5。st是字符数组但不是字符串,[因为该st数组未尾无10好习惯:在字符数组有效字符末尾人为地加'10',使数组表示字符串。ih10cna例3:charst={c'h,in,a,o'}I/对,st是字符数组也是字符串,st长度是6结论3:字符串可以用字符数组来表示但是字符数组不一定是字符串。(字符数组末尾可以无10)
讨论1:字符串与字符数组的关系 1、例1: ① char st[]={"China"}; ② char st[]="China"; ③ char st[]={'C' , 'h' , 'i' , 'n' , 'a' , '\0'}; 结论1:①②③等价—-含义:定义字符数组st,st长度是6 - 结果:将字符串常量"China" 赋给数组st。 结论2:字符串常量可以给字符数组初始化。(如①②) C h i n a \0 C h i n a 2、区别:系统自动在字符串末尾加一个'\0'表示结束;而字符数组并不要求最后一个 字符一定是'\0' ,甚至可以没有'\0'。 例2:char st[]={'C' , 'h' , 'i' , 'n' , 'a'}; //对,st长度是5。st是字符数组但不是字符串,因为该st数组末尾无'\0' 好习惯:在字符数组有效字符末尾人为地加' \0' ,使数组表示字符串。 例3:char st[]={'C' , 'h' , 'i' , 'n' , 'a' , '\0'}; //对,st是字符数组也是字符串,st长度是6 C h i n a \0 结论3:字符串可以用字符数组来表示, 但是字符数组不一定是字符串。(字符数组末尾可以无'\0')