题目描述
写一函数concat,将两个字符串连接(不能使用字符串函数)
输入
两行字符串
输出
连接后的字符串
样例输入
123 abc
样例输出
123abc
提示
来源
算法思路:
创建三个字符型数组,接受两组输入字符串,和合并后的字符串。
首先输入两个字符串,再创建函数concat
创建for循环以'\0'为退出条件依次把两组输入数组的元素合并进入输出数组
切记for内循环用的i 和 j 在for外面定义
最后再给输出数组,最后一位赋值'\0'
具体细节见代码和注释:
#include <stdio.h>
void concat(char are[], char arr[], char ar[]) {
int i = 0, j = 0;
for (i = 0; arr[i] != '\0'; i++)
are[i] = arr[i];
//由于这个地方ar[j]!='\0',导致最后的are[i+j]最后没有'\0',所以出了for循环要在末尾加上'\0'
for (j = 0; ar[j] != '\0'; j++)
are[i + j] = ar[j];
//末尾加'\0'
//为什么是i+j呢?通过调试可以发现,因为此时的j就是原数组\0的下标。
are[i + j] = '\0';
}
int main() {
char arr[10];
char ar[10];
char are[20];
scanf("%s", &arr);
scanf("%s", &ar);
concat(are, arr, ar);
printf("%s", are);
return 0;
}