文档详情

7字符数组与字符串.ppt

发布:2018-01-23约5.46千字共29页下载文档
文本预览下载声明
C++语言字符串基本操作 includecstring using namespace std; string s; cin s; cout s; 字符串基本操作 C++语言: s.length();//返回字符串s的长度 s.substr(a,b);//返回字符串s从下标a开始,长度为b的子串。 s1=s2;//字符串的复制 s1+=s2;//将字符串s2拼接在s1之后 字符串的字典序比较用和数值型一样的,,=,=,==,!=操作符 * 字符数组 用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符。 一、字符数组的定义 char 数组名[常量表达式]; char c[4]; /*每个元素占一个字节 */ c[0]=‘I’; c[1]=‘m’; c[2]=‘_’; 类型 数组名 数组大小 二、字符数组的初始化 与数值数组的初始化相同,取其相应字符的ASCII值。 char c[10]={‘I’, ‘ ’, ‘a’, ‘m’, ‘ ’, ‘a’, ‘ ’ , ‘b’, ‘o’, ‘y’}; 随机 ‘y’ ‘o’ ‘b’ ‘ ’ ‘a’ ‘ ’ ‘m’ ‘a’ ‘ ’ ‘I’ c c[0] c[9] 如果字符个数大于数组长度,做错误处理;如果数值个数小于数组长度,后面的字节全部为‘\0’。 如果省略数组长度,则字符数即为数组长度。 char c[ ]={‘I’, ‘ ’, ‘a’, ‘m’, ‘ ’, ‘a’, ‘ ’ , ‘g’, ‘i’, ‘r’,’l’}; 同理,也可定义和初始化一个二维或多维的字符数组。分层或省略最后一维。 char st1[ ]={65, 66, 68}; ‘D’ ‘B’ ‘A’ 三、字符数组的引用 int main( ) { char c[10]={‘I’, ‘ ’, ‘a’, ‘m’, ‘ ’, ‘a’, ‘ ’ , ‘b’, ‘o’, ‘y’}; int i; for (i=0; i10; i++) coutc[i]; cout“\n”; } 定义 输出 四、字符串和字符串结束标志 C++语言将字符串作为字符数组来处理。 字符串常量:“CHINA”,在机内被处理成一个无名的字符型一维数组。 ‘\0’ A N I H C C++语言中约定用‘\0’作为字符串的结束标志,它占内存空间,但不计入串长度。有了结束标志‘\0’后,程序往往依据它判断字符串是否结束,而不是根据定义时设定的长度。 字符串与字符数组的区别: char a[ ]={‘C’,’H’,’I’,’N’,’A’}; char c[ ]=“CHINA”; 随机 随机 A N I H C 长度占5个字节 随机 ‘\0’ A N I H C 长度占6个字节 字符数组 字符串 可以用字符串的形式为字符数组赋初值 char c[ ]={“I am a boy”}; /*长度11字节,以‘\0’结尾 */ char a[ ]={‘I’, ‘ ’, ‘a’, ‘m’, ‘ ’, ‘a’, ‘ ’ , ‘b’, ‘o’, ‘y’}; /* 长度10字节 */ 如果数组定义的长度大于字符串的长度,后面均为‘\0’。 char c[10]=“CHINA”; ‘\0’ ‘\0’ ‘\0’ ‘\0’ ‘\0’ A N I H C c ‘\0’的ASCII为0,而‘ ’(空格)的ASCII为32。 char w[ ]={‘T’, ‘u’, ‘r’, ‘b’, ‘o’, ‘\0’}; ‘\0’ o b r u T char w[ ]={“Turbo\0”}; ‘\0’ o b r u T char w[ ]=“Turbo\0”; ‘\0’ o b r u T char w[ ]=‘Turbo\0’; 非法 char a[2][5]={“abcd”, “ABCD”}; ‘\0’ D C B A ‘\0’ d c b a 在语句中字符数组不能用赋值语句整体赋值。 char str[12]; str=“The String”; str为字符数组在内存中存储的地址,一经定义,便成为常量,不可再赋值。 char str[12]=“The String”; 非法,在语句中赋值 定义数组,开辟空间时赋初值 字符数组的输入输出 逐个字符的输入输出。这种输入输出的方法,通常是使用循环语句来实现的。如: char str[10]; cout“输入十个字符:”; for(int i=0;i10;i++) cinstr[i]; //A
显示全部
相似文档