c语言输入三个字符串合并成一个 求合并后的长度
时间: 2024-12-22 09:31:46 浏览: 3
c代码-9、有5个字符串,首先将它们按照字符串中的字符个数由小到大排列, 再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格)。要求:利用字符串指针和指针数组实现。
在C语言中,如果你想将三个字符串合并成一个新的字符串,并计算其长度,你可以这样做:
首先,你需要动态地分配足够的内存来存储合并后的字符串,因为合并后的字符串长度可能是三个原始字符串长度之和。可以使用`strlen()`函数获取单个字符串的长度,然后再加上分隔符(如空字符'\0')的空间。
下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h> // 包含strlen函数
#define MAX_LENGTH 1000 // 假设最大字符串长度为1000
int main() {
char str1[MAX_LENGTH], str2[MAX_LENGTH], str3[MAX_LENGTH];
char combined[MAX_LENGTH * 3 + 1]; // 合并后的字符串加上分隔符空间
printf("请输入第一个字符串: ");
fgets(str1, sizeof(str1), stdin); // 使用fgets避免换行符
str1[strcspn(str1, "\n")] = '\0'; // 清除fgets留下的换行符
printf("请输入第二个字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strcspn(str2, "\n")] = '\0';
printf("请输入第三个字符串: ");
fgets(str3, sizeof(str3), stdin);
str3[strcspn(str3, "\n")] = '\0';
// 将str2和str3拼接到combined,中间用'\0'分隔
strcat(combined, str1);
strcat(combined, "\0");
strcat(combined, str2);
strcat(combined, "\0");
strcat(combined, str3);
// 计算并输出合并后的字符串长度
int length = strlen(combined);
printf("合并后的字符串长度为:%d\n", length);
return 0;
}
```
运行程序后,它会提示用户输入三个字符串,然后显示合并后的字符串以及它的长度。记得给每个字符串分配适当的大小,防止数组溢出。
阅读全文