用C语音编写程序,实现两字符串的连接,要求程序中不能使用库函数strcat。 【输入形式】 第一行输入一个字符串,以回车结束。 第二行输入一个字符串,以回车结束。 【输出形式】 输出连接后的字符串。 输入: I am happy 输出结果为: I am happy
时间: 2024-02-29 22:51:11 浏览: 19
好的,我了解您的问题。以下是用C语言编写的程序,实现两个字符串的连接,不使用库函数strcat:
```c
#include <stdio.h>
int main() {
char str1[100], str2[100];
int i, j;
printf("请输入第一个字符串:\n");
fgets(str1, 100, stdin);
printf("请输入第二个字符串:\n");
fgets(str2, 100, stdin);
// 计算第一个字符串的长度
for (i = 0; str1[i] != '\0'; i++);
// 将第二个字符串连接到第一个字符串的末尾
for (j = 0; str2[j] != '\0'; j++) {
str1[i] = str2[j];
i++;
}
str1[i] = '\0'; // 在连接后的字符串末尾添加结束符
printf("连接后的字符串为:%s", str1);
return 0;
}
```
注意,上述程序中用到了fgets函数,它可以从标准输入中读取一行字符串(包括空格),并将其存储到指定的数组中。除此之外,程序中没有使用任何库函数。
相关问题
c语言编写程序,实现两字符串的连接,要求程序中不能使用库函数strcat。 【输入形式】 第一行输入一个字符串,以回车结束。 第二行输入一个字符串,以回车结束。 【输出形式】 输出连接后的字符串。
下面是一份C语言代码实现两字符串连接的功能:
```c
#include <stdio.h>
int main() {
char str1[100], str2[100], result[200];
int i, j;
// 输入两个字符串
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
// 将第一个字符串拷贝到结果字符串中
for (i = 0; str1[i] != '\0'; i++) {
result[i] = str1[i];
}
// 将第二个字符串拷贝到结果字符串中
for (j = 0; str2[j] != '\0'; j++) {
result[i + j] = str2[j];
}
// 结束结果字符串
result[i + j] = '\0';
// 输出结果字符串
printf("连接后的字符串为:%s\n", result);
return 0;
}
```
这个程序中,我们首先定义三个字符数组:`str1`、`str2`和`result`,分别用于存储用户输入的两个字符串和连接后的结果字符串。
接着,我们使用`scanf()`函数分别输入两个字符串。然后,我们使用`for`循环将第一个字符串拷贝到结果字符串中,再使用另一个`for`循环将第二个字符串拷贝到结果字符串中。最后,我们在结果字符串的最后一个位置加上结束符`\0`,表示这是一个字符串的结尾。
最后,我们使用`printf()`函数输出连接后的字符串。
用C语言编写程序,实现两字符串的连接,要求程序中不能使用库函数strcat。 【输入形式】 第一行输入一个字符串,以回车结束。 第二行输入一个字符串,以回车结束。 【输出形式】 输出连接后的字符串。 【样例输入】 I am happy 【样例输出】 I am happy
好的,我可以帮你解决这个问题。以下是一个用 C 语言编写的实现两个字符串连接的程序,其中不使用库函数 strcat:
```c
#include <stdio.h>
#include <string.h>
void my_strcat(char* dest, char* src) {
while (*dest) {
dest++;
}
while (*src) {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
}
int main() {
char str1[100], str2[100];
fgets(str1, sizeof(str1), stdin);
fgets(str2, sizeof(str2), stdin);
str1[strcspn(str1, "\n")] = '\0';
str2[strcspn(str2, "\n")] = '\0';
my_strcat(str1, str2);
printf("%s\n", str1);
return 0;
}
```
程序首先定义了一个自定义函数 my_strcat,该函数将给定的两个字符串连接在一起,并将结果保存在目标字符串中。该函数首先寻找目标字符串的结尾,然后将源字符串中的所有字符复制到目标字符串的末尾,并在最后添加一个字符串结束符。
主函数中,首先使用 fgets 函数读取两个输入字符串,然后使用 strcspn 函数去掉每个字符串的末尾的换行符。接着调用自定义函数 my_strcat 连接两个字符串,并输出结果。
希望这个程序能够解决你的问题。