首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

字符反转,该如何处理

2012-05-15 
字符反转C/C++ code#include stdio.hchar * fan( char *p, int len )int main(){char *p 123p f

字符反转

C/C++ code
#include <stdio.h>char * fan( char *p, int len );int main(){  char *p = "123";  p = fan(p, 3);  printf( "%s", p );  return 0;}char * fan( char *p, int len ){  char * q;  int i = 0;  *(q+len) = '\0';  for( i = 0; i <= len-i-1; i++ )    {      *(q+i) = *(p+len-i-1);    }  return q;}

字符反转有什么问题啊?数组越界了吗?

[解决办法]
char * fan( char *p, int len )
{
char * q = new char[len];////////////////////////////////////////
int i = 0;
*(q+len) = '\0';
for( i = 0; i <= len-1; i++ )//////////////////////////
{
*(q+i) = *(p+len-i-1);
}
return q;
}

ps:翻转字符串,不需要额外申请空间的,双指针扫描,一个指头,一个指尾,交换两个字符,i++,j--即可。
[解决办法]
1、循环上限为什么要跟i有关,len/2吧
2、要反转就要前后字符交换,你只有一个赋值怎么做到交换的

热点排行