• 倒置字符串


    将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I

    废话不多说!上代码!!!

    1. #include<stdio.h>
    2. #include<string.h>
    3. #include<assert.h>
    4. void reverse(char* left,char* right)
    5. {
    6. assert(left);
    7. assert(right);
    8. while (left <= right)
    9. {
    10. int tmp = *left;
    11. *left = *right;
    12. *right = tmp;
    13. left++;
    14. right--;
    15. }
    16. }
    17. int main()
    18. {
    19. char arr[101];
    20. char* left, *right;
    21. gets_s(arr);
    22. int len = strlen(arr);
    23. //先全部倒置
    24. reverse(arr,arr+len-1);
    25. left = arr;
    26. //逐个单词倒置
    27. while (*left)
    28. {
    29. right = left;
    30. while (*right!=' '&&*right!='\0')
    31. {
    32. right++;
    33. }
    34. reverse(left, right-1);
    35. if (*right != '\0')
    36. right += 1;
    37. left = right;
    38. }
    39. printf("%s", arr);
    40. return 0;
    41. }

    解释:

    思路:1、先整体倒置 I like beijing.   ->   .gnijieb ekil I

               2、再单个单词倒置:.gnijieb  ->   beijing.

                                                  ekil        ->   like

                                                  I             ->   I

                               最后 .gnijieb ekil I   ->   beijing.  like I

     注意:

    字符串里面的每个单词之间都是有空格的,scanf无法将有空格的数据输入,因为它遇到空格就会停下,不再读取后面的内容。所以我们选用gets来进行数据的输入。

  • 相关阅读:
    vscode中好用的json插件
    C++-特殊类和单例模式
    小赢科技,寻找金融科技核心价
    Stream流式处理
    SpringSession ( 一 ) HttpSession
    电脑录屏快捷键是什么?win10自带屏幕录制在哪
    前端小白的学习之路(CSS3 一)
    React-hooks
    qmake 参数
    【tio-websocket】8、T-IO对半包和粘包的处理
  • 原文地址:https://blog.csdn.net/m0_65601072/article/details/124901848