编写一个C程序,功能是:从键盘输入两个字符串str1 str2,并将字符串 str2连接str1后面,并将结果显示出来

如题所述

由于C的字符串是由字符数组操作的,所以这种题得保证字符数组str1能放得下它自身和拷贝在它后面的str2的内容。不用库函数的话可以如下操作:

#include "stdio.h"
int main(int argc,char *argv[]){
char str1[301],str2[101];
int i,j;
printf("Please enter 2 strings...\n");
scanf("%200s%100s",str1,str2);//限制长度以保证不溢出
for(j=i=0;str1[i];i++);//测str1的结尾
while(str1[i++]=str2[j++]);//把str2的内容逐一拷贝到str1的后面
printf("\nAfter connection string as follows:\n%s\n",str1);
return 0;
}

试运行结果如下:

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-17
#include <iostream.h>
#include <stdio.h>

#define N 100 //定义数组最大长度100
void main()
{
char str1[N],str2[N];
int i=0,j=0;
gets(str1); //获取字符串,回车结束
gets(str2);
while(str1[i]!='\0')//计算str1数组长度
i++;
while(str2[j]!='\0')//把str2连接到str1尾巴
{
str1[i++]=str2[j];
j++;
}
for(int n=0;n<i;n++)
printf("%c",str1[n]);
}

vc6.0下没问题
第2个回答  2013-07-04
#include "stdio.h"#include "string.h"void main(){ char str1[100]; char str2[100]; printf("请输入str1"); gets(str1); printf("请输入str2"); gets(str2); strcat(str1,str2); puts(str1);}本回答被网友采纳
第3个回答  2010-05-17
#include "stdio.h"
#include "string.h"

int main(void)
{
char str1[1000], str2[1000];

printf("intput the first string:");
scanf("%s", str1);

printf("input the second string:");
scanf("%s", str2);

strcat(str1, str2);
printf("\nThe result is:%s\n", str1);

return 0;
}
相似回答