《字符串和字符数组.ppt》由会员分享,可在线阅读,更多相关《字符串和字符数组.ppt(19页珍藏版)》请在三一办公上搜索。
1、字符串和字符数组,H,e,l,l,o,0,字符串,字符串:连续的一串字符,比如一段文字:,字符串处理是现代软件的重要功能,C/C+中没有直接存储字符串的基本数据类型。,C+是一门优秀的程序设计语言。C+比C更容易为人们所学习和掌握,这是一个字符串,C+字符串常量,cout Hello,world endl;,字符串常量:用双引号括起来,C+字符串在内存中的存储,C+将字符串的所有字符按顺序存储在内存空间中,并在末尾放置一个标志字符串结束的特殊字符0,H,e,l,l,o,0,例:Hello在内存中如下:,字符串结束标志。编码为0,不可打印,字符数组是保存和处理字符串的重要方式,字符数组,char
2、 s10;,字符数组:元素类型为字符型(char)的数组,定义了字符数组s,char s5=H,e,l,l,o;s4=s4 a+A;/可以转为大写字母cout s0 s1 s2 s3 s4;,当然可以象普通数组一样初始化,访问数组元素,char s210=Hello;char s3=Hello;/数组元素个数为6,char s110=H,e,l,l,o,0;,字符数组初始化,并放进一个字符串:,可以使用字符串初始化字符数组:,编译器会自动添加结束标志,字符数组的赋值与引用,char c8;/c=c,h,i,n,a,0;/错误c0=c;c1=h;c2=i;c3=n;c4=a;c5=0;,定义之后
3、,不能整体赋值,可以分别给每个元素赋值,char a5,b5=Mike;a=b;a0=b0;,不能这样赋值,但可以逐个元素进行复制,X,字符串的输入和输出,cin可以将整个字符串直接输入到字符数组中cout 可以输出字符数组中的整个字符串,char str15;cout str;cout 你好,str;,注意:是使用数组名,输入你的姓名:Mike你好,Mike,运行结果:,常见使用字符串的错误,char str15;str=Hello;,char s120=Hello,s2=world;cout s1+s2;,X,X,初始化之后不能整体赋值,不支持使用+号进行字符串连接,事实上,数组名是常量,
4、不可以出现在赋值号(=号)的左边,字符串处理函数,使用字符串处理函数,要包含头文件#include,从C语言引入的字符串处理函数,可以完成类似赋值、连接等的功能,那么,C+怎么处理字符串呢?,gets()函数,字符串输入函数:除了可以用 cin 输入之外,也可以用 gets()函数输入。,格式:gets(str)其中,str是接收字符串的首地址。字符数组名就是其中字符串的首地址,puts()函数,字符串输出函数:除了可以用 cout 输出之外,也可以用 puts()函数输出。,格式:puts(str)其中,str是字符串的首地址。例如,字符数组的数组名另外,常量字符串也表示相应字符串的首地址,
5、如:puts(Hello,world);可以输出Hello,world,例5-9 字符串输入输出例程,#include#include using namespace std;void main()char s35,n=C+language.n;gets(s);puts(n);puts(s);,I am a studentsC+language.I am a students,运行结果:,puts()在输出字符串后,自动换行,定义两个字符数组存放字符串,输入,输出,输出,字符串复制 strcpy(),格式:strcpy(str1,str2)功能:将字符串 str2 的内容复制到字符串 str1
6、 中。原字符串 str1 的内容被覆盖,注意:str1 中的空间应该足够大,以便容纳被复制的内容。,China,London,str1,str2,复制前,London,London,复制后,字符串连接 strcat(),格式:strcat(str1,str2)功能:将字符串 str2 的内容连接到字符串 str1 之后。,注意:str1 中的空间应该足够大,以便容纳被连接之后的新内容。,China,London,str1,str2,连接前,ChinaLondon,London,连接后,字符串比较 strcmp(),格式:strcmp(str1,str2)功能:按字典顺序比较两个字符串。如果完全
7、相等,返回0;如果 str1 大于 str2,返回正整数;如果 str1 小于 str2,则返回负整数,China,London,str1,str2,strcmp(str1,str2)结果为-1,字符串长度测定 strlen(),格式:strlen(str)功能:计算字符串的长度,即字符个数。该长度不包括结束标志 0,China,str1,strlen(str1)结果为 5,例5-10:字符串应用举例,#include#include using namespace std;void main()char s150=The program;char s2=is C+language.;char s350;strcpy(s3,s1);strcat(s1,s2);strcat(s3,is not C language.);cout s1 endl s3 endl;,The program is C+language.The program is not C language.,运行结果:,The program,is C+language.,The program,is C+language.,is not C language.,