C语言如何交换两个字符串
时间: 2023-12-26 20:04:29 浏览: 81
在C语言中,交换两个字符串可以通过以下代码实现:
```c
#include <stdio.h>
#include <string.h>
void swap(char *str1, char *str2) {
char temp[strlen(str1) + 1];
strcpy(temp, str1);
strcpy(str1, str2);
strcpy(str2, temp);
}
int main() {
char str1[100], str2[100];
printf("Enter string 1: ");
scanf("%s", str1);
printf("Enter string 2: ");
scanf("%s", str2);
printf("Before swapping, string 1: %s, string 2: %s\n", str1, str2);
swap(str1, str2);
printf("After swapping, string 1: %s, string 2: %s\n", str1, str2);
return 0;
}
```
在这个代码中,`swap`函数接收两个字符指针作为参数,使用`strcpy`函数将第一个字符串复制到一个临时数组中,然后将第二个字符串复制到第一个字符串中,最后将临时数组中的字符串复制到第二个字符串中。
相关问题
c语言交换两个字符串的第一个非空字符,其他字符不变
可以使用以下代码来交换两个字符串的第一个非空字符:
```c
void swapFirstNonEmptyChar(char str1[], char str2[]) {
int i, j;
for (i = 0; str1[i] != '\0'; i++) {
if (str1[i] != ' ') {
break;
}
}
for (j = 0; str2[j] != '\0'; j++) {
if (str2[j] != ' ') {
break;
}
}
char temp = str1[i];
str1[i] = str2[j];
str2[j] = temp;
}
```
当然,这只是一个简单的实现,可能会有一些边界情况需要考虑。
c语言交换两个字符串的第一个非空字符,其他字符不变,用while语句
可以这样实现:
```c
void swap(char *str1, char *str2) {
int i = 0;
while (str1[i] != '\0' && str2[i] != '\0') { // 从第一个非空字符开始交换
char temp = str1[i];
str1[i] = str2[i];
str2[i] = temp;
i++;
}
}
```
希望能帮到您。还有什么问题吗?