标题:讲一个字符串逆袭输出,请问哪错了?
只看楼主
你爸边哭边
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2017-10-30
结帖率:66.67%
已结贴  问题点数:20 回复次数:2 
讲一个字符串逆袭输出,请问哪错了?
#include<iostream>
#include<string>
using namespace std;
void main()
{
    int n,i;
    string string1,string2;
    cin>>string1;
    n=sizeof(string1);
    for(i=1;i<=n;i++);
    {
    string2[i]=string1[n-i+1];
    cout<<string2<<endl;
    }
}
搜索更多相关主题的帖子: 字符串 输出 include string sizeof 
2018-03-20 16:27
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
“哪错了?”难道不是你告诉大家吗?!比如 编译报错……,运行结果不符合预期……

n=sizeof(string1); // 我猜你想要的是 size_t n= string1.size();
for(i=1;i<=n;i++); // 对于长度为n的序列,下标是从0到n-1。而且下标类型应该是size_t
string2[i]=string1[n-i+1]; // string2是空吧,那string2[i]不溢出?
cout<<string2<<endl; // 你期望每个循环步骤都输出一次?

在你原基础上修改
程序代码:
#include <iostream>
#include <string>
using namespace std;

int main( void )
{
    string s;
    cin >> s;

    string s2( s.size(), ' ' );
    for( size_t i=0; i!=s.size(); ++i )
        s2[i] = s[s.size()-i-1];

    cout << s2 << endl;
}


程序代码:
#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;

int main( void )
{
    string s;
    cin >> s;

    copy( s.rbegin(), s.rend(), std::ostream_iterator<char>(cout,"") ) = '\n';
}

2018-03-20 16:58
Laity_CR
Rank: 2
等 级:论坛游民
威 望:1
帖 子:3
专家分:10
注 册:2018-3-15
得分:10 
#include <iostream>
#include <string>
using namespace std;
int main()
{
    string str1="abcdefg";
    for(int i=str1.length()-1;i>=0;i--)
    {
        cout<<str1[i];
    }
    cout<<endl;
    retrun 0;
}
2018-03-21 11:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-485442-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043903 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved