由于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;
}
试运行结果如下:
#include
#include
#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 printf("%c",str1[n]);
}
vc6.0下没问题
#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);}
#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;
}