首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

字符串子串翻转解决思路

2012-02-15 
字符串子串翻转#include stdio.h#include iostream.hvoid reverse(char* dst,const char* src){const

字符串子串翻转
#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;

热点排行