字符反转,该如何处理
字符反转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、要反转就要前后字符交换,你只有一个赋值怎么做到交换的