您的位置:首页 > 其它

翻转字符句子中单词顺序

2011-11-23 22:21 204 查看
对于给定一句字符,将其进行翻转。如" I am a student." 翻转后的结果为"student. a am I"。代码如下:

#include<stdafx.h>

#include<stdlib.h>

#include<stdio.h>

#include<string>

//翻转句子中单词顺序

void reserve(char* data,int begin,int end) //注意字符串过界

{

if(begin>end)

return;

int a=end;

int m=begin+(end-begin)/2;

for(int i=begin;i<m;i++)

{

char b=data[i];

data[i]=data[a-1];

data[a-1]=b;

a--;

}

return;

}

void allreserve(char* data)

{

int len=strlen(data);

int begin=0;

int end=0;

int i=0;

if(data[0]==' ')

{

i++;

begin=end=1;

}

for(;i<len;i++)

{

while(data[i]!=' '&&data[i]!='\0')

{

i++;

end++;

}

if(end!=begin)

{

reserve(data,begin,end);

}

begin=end+1;

end=begin;

}

}

int main(int argc,char** argv)

{

char data[]="I am a student.";

int len=strlen(data);

printf("before reserve:%s\n",data);

allreserve(data);

reserve(data,0,len);

printf("after reserve:%s\n",data);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐