如何使用函数更改2个字符串,方法是更改​​其指针的值

时间:2013-05-17 07:24:57

标签: c function pointers swap

main()

char *s1="Second";
char *s2="First";
swap(s1,s2);
printf("%s\n",s1);
printf("%s\n",s2);

我有一个练习,在之上交换那两个字符串(以便执行程序的那个字符串将看到“First Second”而不是“Second First”),通过更改值他们的指针,使用函数swap(我必须做)。

3 个答案:

答案 0 :(得分:3)

这可以满足你的需要

void swap(char **s1, char **s2){
  char *temp=*s1;
  *s1=*s2;
 *s2=temp;
}

int main(){
  char *s1="second";
  char *s2="first";
  swap(&s1,&s2);
  printf("%s",s1);
  printf("%s",s2);
 return 0;

}

答案 1 :(得分:0)

char *a="vinod";
char *b="kumar";

a=(char*)((int)a+(int)b);
b=(char*)((int)a-(int)b);
a=(char*)((int)a-(int)b);
printf("%s%s",a,b);

答案 2 :(得分:-1)

inline void swap(char*& s1, char*& s2)
{
    char* temp = s1;
    s1 = s2;
    s2 = temp;
}