getchar 只能输入一个字符,用gets 或者 scanf
引用 皆我百晓生 小程序回复内容作答:
为避免和string.h相关函数冲突告警,这里将函数命名为strcat2,代码和执行效果如下:
#include <stdio.h>
void strcat2(char str1[], char str2[]) {
int i, j;
// 找到str1的末尾位置
i = 0;
while (str1[i] != '\0') {
i++;
}
// 将str2拼接到str1的末尾
j = 0;
while (str2[j] != '\0') {
str1[i] = str2[j];
i++;
j++;
}
// 添加str1的结束标志
str1[i] = '\0';
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
strcat2(str1, str2);
printf("拼接后的字符串为:%s\n", str1);
return 0;
}
字符串不能加号
void strcat(char str1[], char[] str2[])
{
printf("%s%s",str1, str2);
}
供参考:
#include <stdio.h>
void strcat_my(char str1[], char str2[])
{
int i = 0, j = 0;
while (str1[i]) i++;
while (str2[j]) str1[i++] = str2[j++];
str1[i] = '\0';
}
int main()
{
char ch1[200], ch2[100];
gets(ch1);
gets(ch2);
strcat_my(ch1, ch2);
printf("%s", ch1);
return 0;
}
【以下回答由 GPT 生成】
首先,让我们来看一下strcat
函数的参数列表和返回值。
char str1[]
:要拼接的第一个字符串char str2[]
:要拼接的第二个字符串void
)接下来,我们编写实现字符串连接功能的函数。
#include<stdio.h>
void strcat(char str1[], char str2[]) {
int i = 0;
int j = 0;
// 找到第一个字符串的末尾位置
while (str1[i] != '\0') {
i++;
}
// 将第二个字符串的内容拼接到第一个字符串末尾
while (str2[j] != '\0') {
str1[i] = str2[j];
i++;
j++;
}
// 添加字符串结束符
str1[i] = '\0';
}
上面的代码中,我们定义了一个strcat
函数,并在函数内部实现了字符串的拼接功能。
接下来,我们通过一个示例来测试一下这个函数。
#include<stdio.h>
void strcat(char str1[], char str2[]) {
int i = 0;
int j = 0;
// 找到第一个字符串的末尾位置
while (str1[i] != '\0') {
i++;
}
// 将第二个字符串的内容拼接到第一个字符串末尾
while (str2[j] != '\0') {
str1[i] = str2[j];
i++;
j++;
}
// 添加字符串结束符
str1[i] = '\0';
}
int main() {
char str1[100] = "Hello, ";
char str2[] = "world!";
strcat(str1, str2);
printf("拼接后的字符串: %s\n", str1);
return 0;
}
这是一个简单的测试代码。我们定义了两个字符串str1
和str2
,其中str1
已经存储了初始内容"Hello, "。然后,我们调用strcat
函数将str2
拼接到str1
的末尾,并打印出拼接后的结果。
运行以上代码,我们可以看到以下输出结果:
拼接后的字符串: Hello, world!
这证明我们的函数能够正确地将两个字符串拼接在一起。
到此,我们已经成功地解决了题目要求的问题。