您的位置:首页 > 编程语言 > C语言/C++

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: