为什么打印出我的字符串的初始化?

时间:2016-05-15 11:16:13

标签: c++ string vector

您好我正在Hackerrank上做challenge。这很简单。程序接受许多字符串,在输出中我打印偶数索引中的字符和字符串的奇数索引中的字符,用空格分隔。这是我的代码:

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

int main() {
    int testCases;
    string word;
    cout << "Give number of test cases: ";
    cin >> testCases;
    vector<string> words;

    int i = 0;
    while (i <= testCases) {
        getline(cin, word);
        words.push_back(word);
        i++;
    }

    // Access each word and store the even values in the even string and odd values in odd string
    for (int j = 0; j < words.size(); ++j) {
        string newStr = words[j];
        string evenStr = "", oddStr = "";

        for (int k = 0; k < newStr.length(); ++k) {
            if (k % 2 == 0)
                evenStr += newStr[k];
            else
                oddStr += newStr[k];
        }
        cout << evenStr + ' ' + oddStr;
        cout << endl;
    }
    getchar();
    return 0;
}

对于示例输入:2以及单词HackerRank我应该得到输出

Hce akr
Rn ak

但我之前得到了一条我不想要的换行符。当我将evenStroddStr初始化为“a”时,我得到了输出

a a
aHce aakr
aRn aak

我的问题是,为什么在我开始用偶数和奇数字符连接字符串之前首先打印字符串?

0 个答案:

没有答案