15字符串与字符串函数null字符串及字符串函数字符串及字符串函数null字符串
字符串及其结束标志
无字符串变量,用字符数组处理字符串
字符串结束标志:‘\0’null字符串的输入输出
逐个字符I/O: %c
整个字符串I/O: %s
字符串输入函数:
scanf函数: char st[10];
scanf(“%s”,st);
说明:
(1)字符串输入时无须加取地址符“&”,直接使用字符数组名即可;
(2)scanf遇到空格、跳格符或回车符就认为字符串结束。
gets函数: ...
null字符串及字符串函数字符串及字符串函数null字符串
字符串及其结束标志
无字符串变量,用字符数组处理字符串
字符串结束标志:‘\0’null字符串的输入输出
逐个字符I/O: %c
整个字符串I/O: %s
字符串输入函数:
scanf函数: char st[10];
scanf(“%s”,st);
说明:
(1)字符串输入时无须加取地址符“&”,直接使用字符数组名即可;
(2)scanf遇到空格、跳格符或回车符就认为字符串结束。
gets函数: char st[10];
gets(st);
说明:
(1 )gets函数输入时,只有遇到回车符才认为字符串结束。
null字符串输出函数:
printf函数: printf(“%s”,st);
说明:
(1)输出“\0”前所有字符,输出后不自动换行。
puts函数: gets(st);
说明:
(1 )输出“\0”前所有字符,输出后自动换行。
注:使用gets和puts,必须包含头文件 string.hnull例 main( )
{ char a[5]={‘H’,’e’,’l’,’l’,’o’};
printf(“%s”,a);
}例 main( )
{ char a[]=“Hello”;
// char a[6]=“Hello”;
printf(“%s”,a);
}结果:Hello#-=*结果:Hello用“%s”输出时,遇‘\0’结束nullmain()
{
char a[]={'h','e','l','\0','l','o','\0'};
printf("%s",a);
}例输出:hel数组中有多个‘\0’时,
遇第一个结束null例 字符串输入举例#include
main()
{ char a[15],b[5],c[5];
scanf("%s%s%s",a,b,c);
printf("a=%s\nb=%s\nc=%s\n",a,b,c);
scanf("%s",a);
printf("a=%s\n",a);
}运行情况:
输入:How are you?
输出:a=How
b=are
c=you?
输入:How are you?
输出:a=Howscanf中%s输入时,遇空格或回车结束运行情况:
输入:How are you?null字符串连接函数strcat
格式:strcat(字符数组1,字符数组2)
功能:把字符数组2连到字符数组1后面
返值:返回字符数组1的首地址
说明:字符数组1必须足够大
连接前,两串均以‘\0’结束;连接后,串1的‘\0’取消,
新串最后加‘\0’字符串拷贝函数strcpy
格式:strcpy(字符数组1,字符串2)
功能:将字符串2,拷贝到字符数组1中去
返值:返回字符数组1的首地址
说明:字符数组1必须足够大
拷贝时‘\0’一同拷贝
不能使用赋值语句为一个字符数组赋值例 char str1[20],str2[20];
str1={“Hello!”}; ()
str2=str1; ()其他字符串处理函数:必须包含头文件 string.h
null例 strcpy与strcat举例#include
#include
void main()
{ char destination[25];
char blank[] = " ", c[]= "C++",
turbo[] = "Turbo";
strcpy(destination, turbo);
strcat(destination, blank);
strcat(destination, c);
printf("%s\n", destination);
}Turbo C++null字符串比较函数strcmp
格式:strcmp(字符串1,字符串2)
功能:比较两个字符串
比较:对两串从左向右逐个字符比较(ASCII码),
直到遇到不同字符或‘\0’为止
返值:返回int型整数,a. 若字符串1< 字符串2, 返回负整数
b. 若字符串1> 字符串2, 返回正整数
c. 若字符串1== 字符串2, 返回零
说明:字符串比较不能用“==”,必须用strcmp字符串长度函数strlen
格式:strlen(字符数组)
功能:计算字符串长度
返值:返回字符串实际长度,不包括‘\0’在内例 对于以下字符串,strlen(s)的值为:
(1)char s[10]={‘A’,‘\0’,‘B’,‘C’,‘\0’,‘D’};
(2)char s[ ]=“\t\r\\\0will\n”;
(3)char s[ ]=“\x69\082\n”; 答案:1 3 1nullHow are you?Hello!
Len1=6,Len2=12,Len3=18null例 有三个字符串,找出其中最大者#include
#include
main()
{ char string[20],str[3][20];
int i;
for(i=0;i<3;i++)
gets(str[i]);
if(strcmp(str[0],str[1])>0)
strcpy(string,str[0]);
else
strcpy(string,str[1]);
if(strcmp(str[2],string)>0)
strcpy(string,str[2]);
printf("\nThe largest string \
is:\n%s\n",string);
}
本文档为【15字符串与字符串函数】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。