将字符串反转,但单词不倒置。Right here waiting for you! -> you! for waiting here Right

//将字符串反转,但单词不倒置。

#include<stdio.h>
#include<string.h>

void reverse(char *s)
{
    char data[255][255];//将s中的空格和非空格子串进行存储
    int row = 0,column = 0;
    int i,j,k;

    for(i=0;s[i];)
    {
        data[row][column] = s[i];
        column++;

        //找到了空格子串的开头
        if(s[i] == ‘ ‘)
        {
            i++;
            if(s[i] == ‘ ‘)
            {
                do
                {
                    data[row][column++] = s[i++];
                }while(s[i] == ‘ ‘);

                data[row++][column] = ‘\0‘;
                column = 0;
            }
            else
            {
                data[row++][column] = ‘\0‘;
                column = 0;
            }
        }

        //找到了非空格子串的开头
        else if(s[i] != ‘ ‘)
        {
            i++;
            if(s[i] != ‘ ‘)
            {
                do
                {
                    data[row][column++] = s[i++];
                }while(s[i] != ‘ ‘ && s[i]);//注意非空格字符还包括字符串结束符。

                data[row++][column] = ‘\0‘;
                column = 0;
            }
            else
            {
                data[row++][column] = ‘\0‘;
                column = 0;
            }
        }
    }

    //将data[][]里面的子串存放于s中。
    k = 0;
    for(i=row-1;i>=0;i--)
    {
        for(j=0;data[i][j]!=‘\0‘;j++)
        {
            s[k++] = data[i][j];
        }
    }
    s[k] = ‘\0‘;
}

int main()
{
    char s[255];
    gets(s);
    reverse(s);
    puts(s);
}

将字符串反转,但单词不倒置。Right here waiting for you! -> you! for waiting here Right

时间: 2024-12-30 00:08:03

将字符串反转,但单词不倒置。Right here waiting for you! -> you! for waiting here Right的相关文章

将字符串反转,但单词不倒置2。Right here waiting for you! -&gt; you! for waiting here Right

//将字符串反转,但单词不倒置.Right here waiting for you! -> you! for waiting here Right #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main() { char str[255]; char result[255]; int length; int i,j,k = 0; int wordLen = 0; gets

字符串反转的进一步应用----单词反转

字符串反转:如给定一字符串 good bye boy. 反转之后: .yob eyb doog 实现思路: 分别从第一个字符和最后一个字符,同时向中间遍历,交换遇到的每一个字符.JAVA实现代码如下:字符数组str存储待反转的字符串. private static void inverse(char[] str, int start, int end){ int i = start; int j = end; while(i < j){ char tmp = str[i]; str[i] = s

【LeetCode-面试算法经典-Java实现】【152-Reverse Words in a String(反转字符串中的单词)】

[152-Reverse Words in a String(反转字符串中的单词)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 Given an input string, reverse the string word by word. For example, Given s = "the sky is blue", return "blue is sky the". 题目大意 给定一个字符串,将其反转,其的字词不转 解题思路

557. 反转字符串中的单词 III

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc"  注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格. 思路:先将给定的字符串(s)中的单词拆分出来(str),然后单个处理每个单词,拼接成一个新的字符串(ans),返回ans. 总结: 1 static co

Leetcode#557. Reverse Words in a String III(反转字符串中的单词 III)

题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格. 思路 分割字符串,再逆序,拼接到字符串 代码实现 package String; /** * 557. Reverse Words in a St

Leetcode 557.反转字符串中的单词III

反转字符串中的单词III 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc"  注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格. 实现思路: 刚看题目心想直接用String.split会不会更容易些,不过这样就失去了这个算法的意义了.还是采用最原始的方法,先

反转字符串中的单词 III

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格. code1:使用自定义reverse函数 class Solution { public: string reverseWords(string s) { i

[LeetCode 557] 反转字符串中的单词 III

题目: 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格. 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-words-in-a-stri

leetCode 151. Reverse Words in a String 字符串反转 | Medium

151. Reverse Words in a String Given an input string, reverse the string word by word. For example,Given s = "the sky is blue",return "blue is sky the". 题目大意: 输入一个字符串,将单词序列反转. 思路1: 采用一个vector,来存放中间结果 将vector的结果倒序放入原字符串中. 思路2: 在字符串分割的时候