文档介绍:该【字符串的声明 】是由【fuxiyue】上传分享,文档一共【20】页,该文档可以免费在线阅读,需要了解更多关于【字符串的声明 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。1
字符串的声明
C语言的字符串可用字符数组及指针两种方式来表示。若以字符数组表示,其最后必须以空字符“\0”结束,且该空字符也算字符串中的一个字符。
字符串的声明有下列3种方式:
(1)使用数组—设置字符串长度
(a) 不设置字符串初值
char 字符串变量[字符串长度];
ex:char S1[20] ;
(b) 设置字符串初值
char 字符串变量[字符串长度] = “字符串常数”;
ex:char S1[12] = “ I am happy!“;
(2)使用数组—不设置字符串长度
char 字符串变量[字符串长度] = “字符串常数”;
ex:char S1[ ] = “ always happy!“;
(3) 使用指针变量
char 字符串变量[字符串长度] = “字符串常数”;
ex:char *S1= “ happy forever“;
2
字符串的基本I/O
字符串的输入与输出各有两种方法。
第1种输入字符串的方法可使用scanf( )含数,在输入格式中要设置“%s”,再加上字符串变量名称。
第2种输入字符串的方法是使用get( )函数
输出字符串也有两种方式
第1种是使用printf( )函数,和scanf( )一样要设置输出格式“%s s”,再加上字符串变量名称。
第2种输出字符串的方式是使用puts( )函数
3
字符串的传递方式
字符串在函数间是以传址调用的方式传递,所以在函数中对于字符串的修改都会直接影响到主程序中原来的字符串内容 。因为字符串变量名称就是指针,故传递的参数即为字符串名称。
程序源代码:
(参见教材P357)
运行结果:
(参见教材P357)
4
字符串的基本处理
C语言对于字符串的操作提供了许多字符串处理函数,本章将针对字符串的基本处理来说明这些函数所应用的技巧。以下各节的程序将统一采用“字符数组结构”来处理字符串的操作。
字符串的基本处理有下列几种:
1. 字符串的长度计算
2. 字符串的复制
3. 字符串的结合
4. 字符串的取代
5. 字符串的插入
6. 字符串的删除
5
字符串的长度计算:Strlen(char *s)
Strlen( ) 是用来计算字符串的长度,其中并不包含结束字符。此函数会计算字符串的字节长,不把结束字符算在内。若以数组结构来声明字符串,声明的字符串长度是表示分配给该字符串的内存空间大小,Strlen( )所回传的字符串长度并非声明的字符串长度,而是结束字符“\0”之前的字符数。
程序源代码:
(参见教材P358)
运行结果:
(参见教材P358)
6
字符串的复制——Strcpy(char *s1,char *s2)
Strcpy( ) 是将一个字符串复制到另一个字符串。若要将字符串s2复制到字符串s1,则s1必须要有足够的空间来容纳s2,最后此函数会返回s1的起始地址。字符串复制的用途为可将字符串内容备份起来,以免在进行字符串的其它处理时更改了字符串的原始内容。
程序源代码:
(参见教材P359)
运行结果:
(参见教材P360)
7
字符串的结合——Strcat(char *s1,char *s2)
字符串的结合是将两个字符串合并成一个字符串。若要将字符串S2连结到字符串S1的后面,则必须将S1的结束字符去掉。且字符串S1要有足够的空间来容纳字符串S2,最后此函数会返回S1的起始地址。
程序源代码:
(参见教材P360)
运行结果:
(参见教材P361)
8
字符串的取代——Strrep(char *s1,char *s2,int pos)
字符串的取代是将字符串中的某一子字符串用另一个子字符串的内容来替换。需特别注意的是,这种字符串处理的方法并不会改变字符串的长度,若替换的子字符串较原子字符串长,则会覆盖掉原字符串中的内容。
程序源代码:
(参见教材P362)
运行结果:
(参见教材P362)
9
字符串的插入——Strins(char *s1,char *s2,int pos)
将欲插入的字符串插入至原字符串中的某个位置,插入完成后,字符串的总长度会是两个字符串的总合。
程序源代码:
(参见教材P363)
运行结果:
(参见教材P364)
10
字符串的删除——Strdel(char *s1,int pos,int len)
字符串的删除Strdel( ) 是从S1某个特定的位置pos开始,依某长度len删除子字符串。
程序源代码:
(参见教材P365)
运行结果:
(参见教材P365)