翻转字符句子中单词顺序
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;
}
#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;
}
相关文章推荐
- C++: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
- 翻转句子内单词的顺序,但单词内字符顺序不变,包括标点
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
- 输入一个英文句子,翻转句子中单词的顺序,单词内字符顺序不变
- 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student
- 面试题38:翻转句子中单词的顺序,单词内字符的顺序不变
- (Java)输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以单个空格符隔开
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 句子中单词以空格符隔开。为简单起见,没有标点符号。 例如输入“I am a student”,则输出“student a
- 每天学习一点编程(2)(输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变)
- "输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student
- 每天学习一算法系列(10)(输入一句英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以空格符隔开)
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符顺序不变
- 翻转句子中单词的顺序,但单词内字符的顺序不变
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不改变
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。(笔试题) 句子中单词以空格符隔开。为简单起见,没有标点符号。 例如输入“I am a student”,则输出“student a
- 翻转句子中单词的顺序,单词内字符顺序不变(写得很烂)
- java算法实现之--输入一个英文句子,翻转句子中的单词顺序,但单词内字符的顺序不变
- 翻转句子中单词的顺序,但单词内字符的顺序不变
- 面试题:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。