问题标题: 酷町堂:1141

0
0
已解决
王鑫烨
王鑫烨
中级光能
中级光能

1141   字符串倒转2经验值:0

题目描述 Description

读入一行英文,只包含字母和空格,单词间以单个空格分隔,将所有单词的顺序倒排并输出,依然以单个空格分隔。

输入描述 Input Description

输入为一个字符串(字符串长度至多为100)。

输出描述 Output Description

输出为按要求排序后的字符串。

样例输入 Sample Input

All things in their being are good for something

样例输出 Sample Output

something for good are being their in things All

 

 

错误代码:

#include <iostream>
#include <string>
using namespace std;
string a[111];
int main(){
    int i=0;
    while(cin>>a[i]){
        i++;
    }
    for(int j=i-1;j>=1;j--){
        cout<<a[j]<<' ';
    }
    return 0;
}

 


1
已采纳
陈振轩
陈振轩
高级光能
高级光能
    for(int i=0; i<str.size(); i++){
        if(str[i]==' '){
            Str[k++]=str.substr(Index, CNT);
            Index=i;
            CNT=0;
        }
        CNT++;
    }

核心↑

之后写一个for k-1~0,里面套一个删除空格的函数输出Str[i]和一个空格即可AC

把一串英文当做字符串输入
用for把这个字符串分成n个数组
倒叙输出数组

思路↑

陈振轩在2020-08-26 16:40:35追加了内容
string DeleteSpace(string s){
    for(int i=0; i<s.size(); i++)
        if(s[i]==' ')
            s.erase(i, 1);
    return s;
}

 

1
董宇昊
董宇昊
初级启示者
初级启示者

你的代码是抄问答上的吧!

0
胡焕宇
胡焕宇
初级守护
初级守护

@陈振轩 

你那叫什么核心

注意

这样定义

核心如下|

             \/        

 

0
被禁言 李秉轩
李秉轩
修练者
修练者
  • string s;
  • int last;
  • int main(){
  • getline(cin,s);
  • s=" "+s+" ";
  • for(int i=s.size()-2;i>=1;i--){
  • if(s[i]!=' '&&s[i+1]==' ')last=i;
  • if(s[i]!=' '&&s[i-1]==' '){
  • string tmp=s.substr(i,last-i+1);
  • cout<<tmp<<' ';
  • }
  • }
  • return 0;
  • }
0
0
0
0
我要回答