int str_swap(char s[], char t[])
{
char tmp[MAX_LEN];
strcpy(tmp, s);
strcpy(s, t);
strcpy(t, tmp);
}
楼上用1000的数组不严谨,用MAX_LEN比较合理。
原理就是你用另外一个空间去缓存然后交换。你调用的那个函数原理是这样的。和用不用指针没有关系!
int str_swap(char s[], char t[])
{
char tmp[1000];
strcpy(tmp, s);
strcpy(s, t);
strcpy(t, tmp);
}
在不使用指针的情况下,可以通过以下步骤实现交换两个字符串的位置:
示例代码如下:
#include <stdio.h>
#include <string.h>
void swapStrings(char str1[], char str2[]) {
char temp[100];
// 将第一个字符串复制到临时数组
strcpy(temp, str1);
// 将第二个字符串复制到第一个字符串的位置
strcpy(str1, str2);
// 将临时数组中的第一个字符串复制到第二个字符串的位置
strcpy(str2, temp);
}
int main() {
char str1[100], str2[100];
printf("输入第一个字符串:");
fgets(str1, sizeof(str1), stdin);
printf("输入第二个字符串:");
fgets(str2, sizeof(str2), stdin);
// 交换字符串
swapStrings(str1, str2);
printf("交换后的字符串:\n");
printf("第一个字符串:%s", str1);
printf("第二个字符串:%s", str2);
return 0;
}
通过以上代码,可以实现交换两个字符串的位置。用户可以输入两个字符串,程序会输出交换后的结果。