C语言 反转句子中单词的顺序
2017-03-01 16:28
246 查看
将"I am your friend"转为"friend your am I"。
#include <iostream>
#include <stdlib.h>
void reverse(char* pBegin, char* pEnd)//反转任意的字符串
{
if(pBegin == NULL || pEnd == NULL)
{
return;
}
while(pBegin < pEnd)
{
char temp=*pBegin;
*pBegin=*pEnd;
*pEnd=temp;
pBegin++;
pEnd--;
}
return;
}
void reverse_sentence(char* begin)
{
if(begin == NULL)
{
return;
}
char* end=begin;
while(*end != '\0')
{
end++;
}
end--;
reverse(begin,end);//先反转整句话
end=begin;
/*开始逐个反转单词*/
while(*begin != '\0')
{
if(*begin == ' ')//跳过空格
{
begin++,end++;
continue;
}
else if(*end == ' ' || *end == '\0')
{
reverse(begin,--end);
begin=++end;
}
else
{
end++;
}
}
return;
}
int main()
{
char in[]="I am your friend!";
reverse_sentence(in);
printf("finally:%s###\n",in);//finally:friend! your am I###
return 0;
}
END。
#include <iostream>
#include <stdlib.h>
void reverse(char* pBegin, char* pEnd)//反转任意的字符串
{
if(pBegin == NULL || pEnd == NULL)
{
return;
}
while(pBegin < pEnd)
{
char temp=*pBegin;
*pBegin=*pEnd;
*pEnd=temp;
pBegin++;
pEnd--;
}
return;
}
void reverse_sentence(char* begin)
{
if(begin == NULL)
{
return;
}
char* end=begin;
while(*end != '\0')
{
end++;
}
end--;
reverse(begin,end);//先反转整句话
end=begin;
/*开始逐个反转单词*/
while(*begin != '\0')
{
if(*begin == ' ')//跳过空格
{
begin++,end++;
continue;
}
else if(*end == ' ' || *end == '\0')
{
reverse(begin,--end);
begin=++end;
}
else
{
end++;
}
}
return;
}
int main()
{
char in[]="I am your friend!";
reverse_sentence(in);
printf("finally:%s###\n",in);//finally:friend! your am I###
return 0;
}
END。
相关文章推荐
- 反转句子中单词的顺序(单词中字符的顺序保持不变,c语言)
- 微软,Google面试题 (7) —— 反转句子中单词的顺序
- ODOA(1) 翻转句子中单词的顺序(C语言实现)
- C语言强化(九)翻转句子中单词的顺序
- C语言强化(九)翻转句子中单词的顺序
- 翻转句子中单词的顺序 C语言
- 面试题准备(01)-反转句子中单词的顺序
- java算法实现"输入一个英文句子,反转句子中的单词顺序,但单词内字符的顺序不变"
- 翻转句子中单词的顺序 C语言
- ODOA(1) 翻转句子中单词的顺序(C语言实现)
- 反转句子中单词的顺序。
- C语言来实现字符串反转 只有单词顺序反转,单词里的字母不反转
- 反转句子单词顺序
- 字符串左旋转&&反转单词顺序&&Text Reverse&&句子的逆序
- 面试题42:翻转单词顺序(句子反转)
- 反转英语句子中的单词顺序
- ACM -- 算法小结(三)反转句子顺序与反转单词组成顺序
- 反转句子中的单词顺序
- 反转句子的单词顺序
- 【100题】翻转句子中单词的顺序