• C语言编程 将句子反转但单词拼写顺序正确(不使用库函数)


    eg:
    有一个字符数组的内容为:"student a am i",
    请你将数组的内容改为"i am a student".
    要求:
    不能使用库函数。
    只能开辟有限个空间(空间个数和字符串的长度无关)。

    student a am i
            i ma a tneduts
            i am a student
    
            代码具体思想
            1.将句子反转(不管单词拼写顺序)
            2.将各个单词分别反转为正确顺序

    源代码:

    #include<stdio.h>
    #include<stdlib.h>
    void Reverse(char *left, char *right)//范围反转
    {
        char temp;
        while (left < right)
        {
            temp = *left;
            *left = *right;
            *right = temp;
            left++; right--;
        }
    }
    int TheStrlen(char *str)。。求字符串长度
    {
        int count=0,i=0;
    
        while (*(str + i)!='')
        {
            count++;
            i++;
        }
    
        return count;
    }
    void ReverseEnd(char *str)
    {
        char *left = str;
        char *right = str + TheStrlen(str) - 1;
        char *p = str;
        char *sta;
        Reverse(left, right);
        while (*p != '')//将具体单词反转
        {
            sta = p;
            while (*p != ' '&&*p != '')
            {
                p++;
            }//测单词长度范围
            Reverse(sta, p - 1);//反转单词
            if (*p == ' ')//跳转至下一个单词
            {
                p++;
            }
        }
    
    }
    int main()
    {
        char str[] = "i am a student";
        ReverseEnd(str);
        printf("%s
    ", str);
        system("pause");
        return 0;
    }
  • 相关阅读:
    LeetCode
    已知二叉树的先序遍历和中序遍历序列求后序遍历序列
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    TCP协议的基本规则和在Java中的使用
    Java中UDP协议的基本原理和简单用法
    LeetCode
  • 原文地址:https://www.cnblogs.com/Kaniso-Vok/p/13756252.html
Copyright © 2020-2023  润新知