合并两个字符串C语言
时间: 2023-12-13 20:31:18 浏览: 96
以下是一个合并两个有序字符串的C语言函数的例子:
```c
void str_bin(char* str1, char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
int i = len1 - 1, j = len2 - 1, k = len1 + len2 - 1;
while (i >= 0 && j >= 0) {
if (str1[i] > str2[j]) {
str1[k--] = str1[i--];
} else if (str1[i] < str2[j]) {
str1[k--] = str2[j--];
} else {
j--;
}
}
while (j >= 0) {
str1[k--] = str2[j--];
}
}
```
该函数的思路是从后往前遍历两个字符串,比较当前位置的字符大小,将较大的字符放到合并后的字符串的末尾。如果两个字符相等,则将str2的指针向前移动一位。最后,如果str2还有剩余字符,则将其全部复制到str1的前面。
在main函数中,可以按照以下方式调用该函数:
```c
int main() {
char str1[100], str2[100];
scanf("%s%s", str1, str2);
str_bin(str1, str2);
printf("%s", str1);
return 0;
}
```
阅读全文