您的位置:首页 > 其它

字符串翻转,单词内不翻转

2015-09-01 20:42 375 查看
字符串翻转,单词内不翻转。如I am from Chongqing->Chongqing from am I

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void reverse(char *str, int beg, int end);
void reverseSentece(char *str);
int main()
{
char str[128];
gets_s(str,128);
reverseSentece(str);
puts(str);
system("pause");
return 0;
}

void reverse(char *str, int beg, int end)
{
char temp;
if(str == NULL)
return;
while(beg <= end)
{
temp = str[beg];
str[beg] = str[end];
str[end] = temp;
beg++;
end--;
}
}

void reverseSentece(char *str)
{
int beg = 0;
int end = 0;
if(str == NULL)
return;
//翻转整个句子
reverse(str,0,strlen(str)-1);
//局部翻转
while(str[end] != '\0')
{
//找到单词的结束
while(str[end] != '\0' && str[end] != ' ')
++end;
//翻转一个单词
reverse(str,beg,end-1);
if(str[end] == '\0')
break;
++end;
beg = end;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: