C语言用指针实现将字符串里的单词顺序倒置
发布时间:2020-12-13 19:46:55 所属栏目:百科 来源:网络整理
导读:将字符串里词顺序倒置,如"Times New Roman"变为"Roman New Times"。以空格为分隔符。 还比如把 "Welcome to India" 变成"India to Welcome" /*思路:比如把hello world反转,做法是先把它整体反转,然后在一个单词一个单词的反转 变成dlorw olleh 然后world
将字符串里词顺序倒置,如"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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |