理论教育 C语言程序设计:常用字符串处理函数

C语言程序设计:常用字符串处理函数

时间:2023-10-20 理论教育 版权反馈
【摘要】:输入:No pains,no gains.输出:No pains,no gains.3.字符串连接函数strcat格式:strcat功能:把字符串2连到字符串1后面。返值:返回字符串实际长度,不包括“\0”在内。字符串处理函数的综合应用。

C语言程序设计:常用字符串处理函数

1.字符串输出函数puts      <stdio.h>

格式:puts(字符数组)

功能:向显示器输出字符串(输出完,换行)。

说明:字符数组中必须有“\0”结束符。

2.字符串输入函数gets       <stdio.h>

格式:gets(字符数组)

功能:从键盘输入,以回车结束读取的字符串放入字符数组中,并用串结束符“\0”代替输入中的换行符。

说明:输入串的长度应小于字符数组长度。

【例6.12】字符串的输入输出。

输入:No pains,no gains.

输出:No pains,no gains.

3.字符串连接函数strcat       <string.h>

格式:strcat(字符数组1,字符数组2)功能:把字符串2连到字符串1后面。返回值:返回字符数组1的首地址。说明:字符数组1必须足够大。连接前,两串均以“\0”结束;连接后,串1的“\0”取消,新串以串2的“\0”标志结束。

例如:char str1[10]="come ";

char str2[10]="on";

strcat(str1,str2);

原str1:

原str2:

连接后str1:

4.字符串拷贝函数strcpy       <stying.h>

格式:strcpy(字符数组1,字符数组2)

功能:将字符数组2,拷贝到字符数组1中去。

返值:返回字符数组1的首地址。

说明:字符数组1必须足够大。

拷贝时“\0”一同拷贝

例如:char str1[10]="come ";

char str2[10]="on";

strcpy(str1,str2);

原str1:

原str2:

拷贝后str1:

注意:不能使用赋值语句为一个字符数组赋值。

例如:char str1[10],str[10];

str1={"Hello!"};(×)

str1="Hello!";(×)

str2=str1;(×)

5.字符串比较函数strcmp       <string.h>

格式:strcmp(字符数组1,字符数组2)

功能:比较两个字符串。

比较规则:对两串从左向右逐个字符比较(ASCII码),

直到遇到不同字符或“\0”为止

返值:返回int型整数,a.若字符串1<字符串2,返回负整数;

b.若字符串1>字符串2,返回正整数;(www.daowen.com)

c.若字符串1==字符串2,返回零。

说明:字符串比较不能用“==”,必须用“strcmp”。

例如:char str1[10]="your";

char str2[10]="you";

int t=strcmp(str1,str2);

6.字符串长度函数strlen       <string.h>

格式:strlen(字符数组)

功能:计算字符串长度。

返值:返回字符串实际长度,不包括“\0”在内。

例如:对于以下字符串,strlen(s)的值为:

①char s[10]={'A','\0','B','C','\0','D'};

②char s[]="\t\v\\\0will\n";

③char s[]="\x69\082\n";

三个串实际长度为:1 3 1

注意:转义字符的格式。

【例6.13】字符串处理函数的综合应用。

程序运行结果:

结合案例导读和本节字符数组的知识,总结如下:

1.在生活中,大家都是普通的一员!这才组成了社会!

2.我们以奋斗之资立足本职,埋头苦干,从自身做起,从点滴做起,何愁不能实现“中华民族伟大复兴”。

3.向每一个努力奋斗的人致敬,为每一个奋斗的人喝彩!

1.字符数组进行初始化,(  )形式是错误。

A.char c1[]={'1','2','3'}; B.char c2[]=123;

C.char c3[]={'1','2','3','\0'}; D.char c4[]="123";

2.下列有关字符数组与字符串的说法中正确的是(  )。

A.字符数组中存放的一定是—个字符串

B.所有的字符数组都可以被当作字符串处理

C.对存放字符串的字符数组可以像一般数组一样对数组中的单个元素进行操作

D.一个字符数组可以认为就是一个字符串

3.设有定义:char s[12]="string";则printf("%d\n",strlen(s));的输出是(  )。

A.6 B.7 C.11 D.12

4.设有定义:char s[12]="string";则printf("%d\n",sizeof(s));的输出是(  )。

A.6 B.7 C.11 D.12

5.有以下程序:

现从键盘上输入abc,则输出是(  )。

A.abc B.ABC

C.无特定值 D.程序出错,不能通过编译

6.输入10个字符,将它们的顺序颠倒后输出。

7.用冒泡排序法对输入的10个数进行降序排序并存入数组中,然后输入一个整数,查看此数是否在数组中。

8.输出一个3×3矩阵的对角线元素之和。

9.世界上每个国家都有属于自己国家的国球,或者应该称之为国民运动,比如说巴西的足球、美国的篮球,这些都是世界闻名的。中国的国球是乒乓球,因为中国队在世界乒乓球队中具有超凡实力,绝对是一个让人恐惧的存在。乒乓球在中国拥有坚实的群众基础,中国乒乓球人口将近有1亿。现已知某市乒乓球决赛成绩,要求编写程序,输入8名运动员的编号和成绩,然后按照成绩进行排名,输出结果中包含名次、运动员编号和成绩三项内容。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈