C语言中两个字符串怎么互换
时间: 2024-11-13 12:24:59 浏览: 5
在C语言中,要交换两个字符串,一种常见的方法是利用字符数组。这里是一个简单的示例,假设我们有两个指向字符串首元素的指针str1和str2:
```c
#include <stdio.h>
#include <string.h>
void swap(char* str1, char* str2) {
// 检查两个字符串是否非空
if (str1 && str2) {
char temp[strlen(str1) + 1]; // 临时存储空间,包括null终止符
// 将str1复制到temp
strcpy(temp, str1);
// 将str2的内容赋给str1
strcpy(str1, str2);
// 将temp的内容赋给str2
strcpy(str2, temp);
}
}
int main() {
char str1[] = "Hello";
char str2[] = "World";
printf("Before swapping:\nstr1: %s\nstr2: %s", str1, str2);
swap(str1, str2);
printf("After swapping:\nstr1: %s\nstr2: %s", str1, str2);
return 0;
}
```
相关问题
c语言互换两个字符串的值
```
#include <stdio.h>
#include <string.h>
void swap(char *str1, char *str2) {
char temp[50];
strcpy(temp, str1);
strcpy(str1, str2);
strcpy(str2, temp);
}
int main() {
char str1[50], str2[50];
printf("Enter string 1: ");
scanf("%s", str1);
printf("Enter string 2: ");
scanf("%s", str2);
printf("Before swapping:\n");
printf("String 1: %s\n", str1);
printf("String 2: %s\n", str2);
swap(str1, str2);
printf("After swapping:\n");
printf("String 1: %s\n", str1);
printf("String 2: %s\n", str2);
return 0;
}
```
用c语言来编程:输入两个字符串 str1,str2,判断如果字符串str1大于str2 ,则互换两个字符串的值,然后将互换的两个字符串连接起来后,再输出字符串。
好的,让我来回答您的问题。这是一个可以用C语言编写的程序,用来比较并互换两个字符串的值,然后连接起来并输出。可以像这样实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void swap(char* str1, char* str2);
void concatenate(char* str1, char* str2, char* result);
int main() {
char str1[MAX_LEN], str2[MAX_LEN], result[MAX_LEN];
printf("请输入第一个字符串:");
fgets(str1, MAX_LEN, stdin);
printf("请输入第二个字符串:");
fgets(str2, MAX_LEN, stdin);
if (strcmp(str1, str2) > 0) {
swap(str1, str2);
}
concatenate(str1, str2, result);
printf("连接后的字符串为:%s\n", result);
return 0;
}
void swap(char* str1, char* str2) {
char temp[MAX_LEN];
strcpy(temp, str1);
strcpy(str1, str2);
strcpy(str2, temp);
}
void concatenate(char* str1, char* str2, char* result) {
strcpy(result, str1);
strcat(result, str2);
}
```
程序中,我们先定义了三个长度为 `MAX_LEN` 的字符数组 `str1`、`str2` 和 `result`,用于存放输入的两个字符串和连接后的结果。然后通过 `fgets` 函数从标准输入读取两个字符串。
接下来使用 `strcmp` 函数比较两个字符串的大小,如果 `str1` 大于 `str2`,则调用 `swap` 函数互换两个字符串的值。在 `swap` 函数中,我们定义了一个临时数组 `temp`,通过 `strcpy` 和 `strcmp` 函数实现字符串的互换。
最后调用 `concatenate` 函数将两个字符串连接起来,并将连接后的结果存放在 `result` 数组中。在 `concatenate` 函数中,我们使用 `strcpy` 和 `strcat` 函数将 `str1` 和 `str2` 连接起来。
最终通过 `printf` 函数将连接后的字符串输出。
阅读全文