查找兄弟单词 牛客输出多输出一个数字 ? 求大佬看看

牛客上运行输出一个string对象,为什么会在string对象结尾多输出一个2呢 《求帮助》

输出一个string对象,为什么会多输出一个2呢,在自己本地输出没有任何问题,测例通过50%,
i为兄弟个数,res为查找的兄弟单词,我直接让res=输入的目标string对象,为什么会这样啊

std::cout << i << endl
             << res;//
//if(res=="adbcb") cout << "wcw ";//debug,证明res此时没有2结尾,的确没有2



源代码如下
/*
*牛客 查找兄弟单词
*
*/

#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
    int n=0;//debug n=0
    while (cin>>n)
    {
        //debug with n>0 ?
        if (n<=0)
            return -1;
        vector<string> vstr;
        string str;
        for (int i = 0; i < n; i++)
        {
            cin >> str;
            vstr.push_back(str);
        }
        sort(vstr.begin(), vstr.end());

        string word;
        int pos;
        int i = 0; //many of  brother
        string res="";
        cin >> word;
        cin >> pos;
        string backword = word; //backup for target word which will be changed
        sort(word.begin(), word.end());

        for (auto tmp : vstr)
        {
            string backtmp = tmp;
            sort((tmp).begin(), (tmp).end());
            if (word == tmp)
            { //find brotther&nbs***bsp;himself
                if (backword == backtmp)
                {
                    continue;
                }
                else
                {
                    i++;
                }
                if (i == pos)
                { /*少了一个等号,答案输出变成 1 和dacbb*/ //find the tarword;
                    res = backtmp;
                }
            }
            //do nothing for next word;
        }
        std::cout << i << endl
             << res;//
        //if(res=="adbcb") cout << "wcw ";//测例3,证明res此时没有2结尾,的确没有2
        n = 0; //    debug
    }
    return 0;
}

#查找兄弟单词#
全部评论
没仔细看代码,如果输出能保证没问题,那么输出的字符串结尾得加个\0
点赞 回复 分享
发布于 2020-03-29 14:40
连续输出两个res的时候会在第二个后面加上2,真的没有其他输出语句了
点赞 回复 分享
发布于 2020-03-29 15:49

相关推荐

公司 A 程序员 12k,13至15薪 本科
点赞 评论 收藏
分享
11-14 17:28
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务