读书人

字符串子串翻转解决思路

发布时间: 2012-02-15 12:09:44 作者: rapoo

字符串子串翻转
#include <stdio.h>
#include <iostream.h>

void reverse(char* dst,const char* src){

const char* p=src+strlen(src)-1;
char* q=dst;
char* d=q;

while(q < dst+strlen(src))
{
*q=*p;
--p;
++q;
}
*q='\0';
q=dst;
while(*q!='\0'){

while(*d!=' ')
{++d;}

--d;
char *s,*r;
for(s=q,r=d;s<r;s++,r--)
{
*s = *s + *r;
*r = *s - *r;
*s = *s - *r;
}

d=d+2;q=d;

}

}

int main(){

const char* src="i love tian an men";
char* dst=new char[strlen(src)+1];
reverse(dst,src);
cout<< dst <<endl;
delete []dst;
dst=NULL;

}


core dump了


[解决办法]
while(*d!=' ')
{++d;}
前面加
if(*d!='\0')
break;

读书人网 >UNIXLINUX

热点推荐