如何利用指针实现两个字符串串变量的交换?
例如:
char *ap="hello";
char *bp="how are you";
交换后使ap和bp指向的内容分别是:
ap: "how are you"
bp: "hello"
请大家帮帮看看??
例如:
char *ap="hello";
char *bp="how are you";
交换后使ap和bp指向的内容分别是:
ap: "how are you"
bp: "hello"
请大家帮帮看看??
void main()
{
char a[20],b[20];
cout<<"请输入ap的值:";
cin>>a;
cout<<"请输入bp的值:";
cin>>b;
char *ap=a,*bp=b;
cout<<"你输入的ap值是:"<<a<<'\t'<<"bp的值是:"<<b<<endl;
Swap(ap,bp);
cout<<"交换后ap值是:"<<a<<'\t'<<"bp的值是:"<<b<<endl;
}
我不知道Swap(ap,bp)这个函数该如何写???
cout<<"你输入的ap值是:"<<a<<'\t'<<"bp的值是:"<<b<<endl;
cout<<"交换后ap值是:"<<a<<'\t'<<"bp的值是:"<<b<<endl;
把这两行输出改成:
cout<<"你输入的ap值是:"<<ap<<'\t'<<"bp的值是:"<<bp<<endl;
cout<<"交换后ap值是:"<<ap<<'\t'<<"bp的值是:"<<bp<<endl;
就像下面这个一样:
请输入ap的值:abcdefg
请输入bp的值:1234
你输入的ap值是:abcdefg bp的值是:1234
交换后ap值是:1234 bp的值是:abcdefg
Press any key to continue
{
if (strlen(y) > strlen(x)) // 如果字符串y比较长的话……
{
char *t = x; x = y; y = t; // 交换两个指针
} // 因此x总是指向比较长的那个
swap_ranges(x, x + strlen(x) + 1, y); // STL算法,交换两个区间的元素内容……
}