c++交换字符的问题

来源:百度知道 编辑:UC知道 时间:2024/09/20 14:32:15
#include<iostream.h>
void swap(char *x,char*y)
{char *t=x;x=y;y=t;}
void main(void)
{char *a="zhangshan",*b="lisi";
swap(a,b);
cout<<a<<','<<b;
}
为什么不能交换字符串呢?

swap(char **p1, char **p2)
{
char *p;

p = *p1;
*p1 = *p2;
*p2 = p;
}

void main()
{
char str1[] = "12345";
char str2[] = "ABCDEFG";
char *p1 = str1, *p2 = str2;

printf("%s\t%s\n", p1, p2);
swap(&p1, &p2);
printf("%s\t%s\n", p1, p2);
}

Output:
12345 ABCDEFG
ABCDEFG 12345

应该是只交换了两个字符串的第一个字符相互交换了