题目描述
由键盘任意输入两串字符,不用库函数strcat,连接将两串字符。
输入
两串字符
输出
将两串字符连接
样例输入
abc def
样例输出
abcdef
问题分析:
方法一:
1.用两个字符数组来存储两个子串,记作a,b
2.将b字串的内容逐个拿出,赋值到a数组的后面
3.输出a数组
也就是把b的,每个元素赋给a后面,用一个循环(for(i=0;i<strlen(b);i++)),b[i]就是取出b中的每一个元素。然后开始赋值到a后面。
从哪里开始赋值呢?
就从a字符串结束的位置,就是a中下标为strlen(a)的位置,用j来存储a开始遍历的位置,即j=strlen(a);接着让b中的元素赋值给a,就可以写成a[j++]=b[i]。
代码实现:
#include<stdio.h>
#include<string.h>
int main()
{
char a[1000],b[1000];
gets(a);
gets(b);
int i=0,j=strlen(a);
for(i=0;i<strlen(b);i++)
{
a[j++]=b[i];
}
// strcat(a,b);//将两个字符串进行拼接,结果保留在第一个字符串中
puts(a);
return 0;
}
方法二:
利用strcat函数,需要添加头文件(#include<string.h>)将两个字符数组(可看作是两个字符串)拼接,函数运行后,拼接完成的数组保留在第一个参数中,例如运行以下代码:
#include<stdio.h>
#include<string.h>
int main()
{
char a[1000],b[1000];
gets(a);
gets(b);
strcat(a,b);//将两个字符串进行拼接,结果保留在第一个字符串中
puts(a);
return 0;
}
输入:
abc
cde
即
欢迎批评指正!