指针实现 字符串逆序,该如何解决

指针实现 字符串逆序void reverse_string( char *string ){char *cp1char *cp2char tempfor (cp2strin

指针实现 字符串逆序
void reverse_string( char *string )
{
  char *cp1;
  char *cp2;
  char temp;
  for (cp2=string; *cp2 !='\0';cp2++)
  {
  ;
  }
  cp2=cp2-1; //回到最后一个字符,规定不用已知的函数
  cp1=string;

  while (cp1 < cp2)
  {
  temp = *cp1;
  *cp1 = *cp2; //交换为啥出错????
  *cp2 = temp;  
  cp1++;
  cp2--;
  }
  cp1=string;
  printf("%s\n",cp1);
}

[解决办法]
你是这样调用的吧reverse_string( "15646a" );
或者类似这样的调用?
因为这个字符串是常量存储区,没发修改的。
改成
char str[]="5454fs";
reverse_string( str);
这样就行了