编一程序,将两个字符串连接起来,不要用strcat函数。字符串都要求从键盘输入到字符数组去。
时间: 2024-12-06 21:25:47 浏览: 42
在C语言中,我们可以手动创建一个新的字符数组,然后通过循环逐个复制第二个字符串的内容到新数组中,最后添加上第一个字符串的结束标志'\0'。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100 // 定义数组大小
void concatenateStrings(char str1[], char str2[]) {
int len1 = strlen(str1); // 第一个字符串长度
int i;
// 创建新的字符数组
char result[MAX_SIZE] = {0}; // 初始化为0防止意外情况
// 结合字符串,把str1复制到result,然后追加str2
for (i = 0; i < len1; i++) {
result[i] = str1[i];
}
result[len1] = '\0'; // 添加第一个字符串结束符
if (len1 + strlen(str2) + 1 <= MAX_SIZE) { // 避免数组溢出
strcat(result, str2); // 追加第二个字符串
} else {
printf("字符串过长,无法完全拼接。\n");
}
}
int main() {
char str1[MAX_SIZE], str2[MAX_SIZE];
printf("请输入第一个字符串: ");
fgets(str1, sizeof(str1), stdin); // 注意处理换行符
str1[strlen(str1) - 1] = '\0'; // 删除fgets的换行符
printf("请输入第二个字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strlen(str2) - 1] = '\0';
concatenateStrings(str1, str2);
printf("合并后的字符串: %s\n", result);
return 0;
}
```
在这个程序中,用户会被提示输入两个字符串,然后`concatenateStrings`函数会将它们连接起来并打印结果。
阅读全文