用C语言实现一个函数,将输入的两个字符串交织在一起
时间: 2024-09-26 19:13:37 浏览: 57
在C语言中,我们可以创建一个名为`interlace_strings`的函数来实现字符串的交织。这个函数会接收两个字符串作为输入,然后通过交替添加字符的方式来返回一个新的交织后的字符串。
下面是一个简单的示例实现:
```c
#include <stdio.h>
#include <string.h>
char* interlace_strings(char *str1, char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 长度较短的字符串长度加一用于循环
int maxLength = (len1 > len2) ? len1 : len2 + 1;
char result[maxLength];
int i = 0, j = 0;
while (i < len1 && j < len2) {
result[i++] = str1[j];
result[i++] = str2[j];
if (j < len2 - 1)
j++;
else
i++;
}
// 将剩余的字符串添加到结果(如果有的话)
if (i < maxLength)
strncpy(result + i, str1 + j, len1 - j);
// 添加终止符 '\0'
result[maxLength - 1] = '\0';
return result;
}
int main() {
char str1[] = "Hello";
char str2[] = "World!";
char* intertwined = interlace_strings(str1, str2);
printf("Interlaced string: %s\n", intertwined);
free(intertwined); // 释放内存
return 0;
}
```
在这个例子中,函数首先计算两个字符串中最长的那个,并为其分配足够的空间。接着,它交替从两个输入字符串中取出字符并添加到结果数组中。最后,如果其中一个字符串还有剩余未添加的字符,则将它们追加到结果字符串的末尾。
阅读全文