C语言用指针实现将字符串里的单词顺序倒置
发布时间:2020-05-22 18:39:13 所属栏目:程序设计 来源:互联网
导读:将字符串里词顺序倒置,如Times New Roman变为Roman New Times。以空格为分隔符。 还比如把Welcome to India 变成India to Welcome /*思路:比如把hello world反转,做法是先把它整体反转,然后在一个单词一个单词的反转 变成dlorw olleh 然后world hello*/#i
|
将字符串里词顺序倒置,如"Times New Roman"变为"Roman New Times"。以空格为分隔符。
/*
思路:
比如把hello world反转,做法是先把它整体反转,然后在一个单词一个单词的反转
变成dlorw olleh
然后world hello
*/
#include <stdio.h>
#include <string.h>
void reverse(char *str,int b,int e)
{
char temp;
if(str==NULL)
return;
for(;b<e;b++,e--)
{
temp = str[e];
str[e] = str[b];
str[b] = temp;
}
}
void reverseEveryWord(char *str)
{
int temp=0,b=0;
char *start=str;//用start做为一个一直向前移动的标记。
if(start==NULL)
return ;
while(*start)
{
if(*start!=' ')
{
temp++;
start++;
}else
{
reverse(str,b,temp-1);//这边反转的是str
temp++;
b = temp;
start++;
}
}
reverse(str,temp-1);//while循环结束时还有最后一个单词没有反转
}
int main()
{
char str[100];
int length;
printf("Input a string please:n");
while(gets(str)!=NULL)
{
length = strlen(str);
reverse(str,length-1);
reverseEveryWord(str);
printf("After Worlds Reverse:n%sn",str);
printf("Input a string please:n");
}
return 0;
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
