编写程序任意输入3个长度不一的字符串,不使用系统的标准函数,用字符数组处理,将三个字符串连接为一个串后显示。例如: ”abcdefgh”+”1232434”+”ABCDE”=> “abcdefgh1232434ABCDE” C语言
时间: 2024-12-04 08:27:20 浏览: 12
在C语言中,你可以通过手动遍历每个字符串并逐个添加字符到新的字符数组中来实现这个功能。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 100
int main() {
char str1[MAX_LENGTH], str2[MAX_LENGTH], str3[MAX_LENGTH], combined[MAX_LENGTH * 3]; // 定义三个源字符串和一个结合后的结果字符串
int len1, len2, len3; // 存储每个字符串的长度
char temp; // 中间临时字符用于拼接
printf("请输入第一个字符串:");
fgets(str1, sizeof(str1), stdin); // 使用fgets读取用户输入,不包括换行符
len1 = strlen(str1) - 1; // 去除换行符
printf("请输入第二个字符串:");
fgets(str2, sizeof(str2), stdin);
len2 = strlen(str2) - 1;
printf("请输入第三个字符串:");
fgets(str3, sizeof(str3), stdin);
len3 = strlen(str3) - 1;
// 检查是否所有字符串都不超过最大长度
if (len1 + len2 + len3 > MAX_LENGTH * 2) {
printf("字符串过长,无法合并。\n");
return 1;
}
// 初始化组合字符串
for (int i = 0; i < MAX_LENGTH * 2; i++) {
combined[i] = '\0'; // 初始化为空字符串
}
// 连接字符串
for (int i = 0; i <= len1; i++) { // 遍历所有输入字符串
temp = str1[i];
combined[len1 + len2 + len3 + i] = temp; // 将字符添加到结果字符串的适当位置
}
combined[len1 + len2 + len3] = '\0'; // 结束第一个字符串
for (int j = 0; j <= len2; j++) { // 继续添加下一个字符串
temp = str2[j];
combined[len1 + len2 + j] = temp;
}
combined[len1 + len2] = '\0'; // 结束第二个字符串
for (int k = 0; k <= len3; k++) { // 最后一个字符串
temp = str3[k];
combined[len1 + j + k] = temp;
}
combined[len1 + len2 + len3] = '\0'; // 结束并添加终止符
printf("合并后的字符串:%s\n", combined);
return 0;
}
```
阅读全文