C++实现一句英文句子中的单词逆置

题意:

比如,输入:I come from China.

          输出:China. from come I

思路:先将这个字符串整体倒置,再将单个单词倒置,这样既不需要移动元素,也不需要额外的辅助空间,还可以重用代码,很不错吧。

代码:

 1 #include <iostream>
 2  
 3 int len(char* str) {//计算字符串的长度
 4     int length = 0;
 5     for(int i = 0; str[i] != '\0'; i++) {
 6         length++;
 7     }
 8     return length;
 9 }
10 char* reverseWord(char* str ,int i,int j) {//根据i,j的位置反转单词
11     char temp;
12     while(i < j) {
13         temp = str[i]; str[i] = str[j]; str[j] = temp;
14         i++; j--;
15     }
16     return str;
17 }
18 char *strReverse(char *str)
19 {//字符串反转,用到了上面的函数
20     int length=len(str);
21     char *newStr=reverseWord(str,0,(length-1));
22     
23     for (int i=0; i<length; i++) {
24         int len=0;
25         while(newStr[i] != ' ' && newStr[i] !='\0') {
26             len++;
27             i++;
28         }
29         int k = i-len,j=i-1;
30         reverseWord(newStr,k,j);
31     }
32  
33     return str;
34 }
35     
36 int main(int argc, const char * argv[])
37 {
38     char str[]="I come from China.";
39     int length=len(str);
40     strReverse(str);
41     for (int i=0; i<length;i++)
42     {
43         std::cout <<str[i];
44     }
45     std::cout<<std::endl;
46     
47     return 0;
48 }

转自:https://blog.csdn.net/tyuersunshine/article/details/51045694

原文链接: https://www.cnblogs.com/xuecl/p/12422374.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++实现一句英文句子中的单词逆置

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/333560

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午9:14
下一篇 2023年3月1日 下午9:14

相关推荐