strcat和strcpy函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
长沙市中等职业业备课用纸
puts(st1);
}
结果:
本程序把初始化赋值的字符数组st1与动态赋值的字符串st2连接起来。
连接前后的状态:
4、使用strcat函数还应注意:
字符数组1应定义足够的长度,否则不能全部装入被连接的字符串。
(二)、字符串复制函数strcpy
1、格式:strcpy (字符数组名1,字符数组名2)
2、功能:把字符数组2中的字符串复制到字符数组1中。串结束标志“\0”也一同复制。字符数组名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。
3、例:写出下列程序的功能:
#include"string.h"
main()
{ char st1[20]="012345678901234",st2[]="C Language";
strcpy(st1,st2);
puts(st1);printf("\n");
}
结果:
复制前后的状态:
4、使用strcpy函数还应注意:
①字符数组1应定义足够的长度,否则不能全部装入被连接的字符串。
②结束标志“\0”也一同复制。
③字符数组名2,也可以是一个字符串常量。相当于把一个字符串赋予一个字符数组。
④不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如下面两行都是不合法的:
str1=″China″;
str1=str2;
而只能用strcpy函数将一个字符串复制到另一个字符数组中去。
三、课堂练习:写出下列程序运行的结果
#include
main()
{int i;
char a[]="Time",b[]="Tom";
for(i=0;a[i]!='\0'&&b[i]!='\0';i++)
if(a[i]==b[i])
if(a[i]>='a'&&b[i]<='z')
printf("%c",a[i]-32);
else
printf("%c",a[i]+32);
else
printf("*");
}
结果:
2、练习:设计程序,实现strcpy函数的功能
#include
main()
{
int i=0;
char str1[100],str2[100];
printf("String1:");
gets(str1);
printf("String2:");
gets(str2);
while(str2[i]!='\0')
{str1[i]=str2[i];
i=i+1;}
str1[i]='\0';/*给str1打上新的结束标志*/ printf("str1=%s,str2=%s\n",str1,str2);
}
结果:
3、练习:设计程序,实现strcat函数的功能
#include
main()
{
char str1[100],str2[100];
int i,j;
printf("String1:");
gets(str1);
printf("String2:");
gets(str2);
for(i=0;str1[i]!='\0';i++) ;/*统计str1中的字符个数,退出循环后,i比下标多1*/
for(j=0;str2[j]!='\0';j++)
{str1[i]=str2[j];
i++;}
str1[i]='\0'; /*给str1补上结束标志*/
printf("Append String:");
puts(str1);
}
结果:
四、课堂小结:
五、布置作业:
1、预习字符串比较、求长度函数。
2、设计程序:输出10行杨辉三角形。