您好我正在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
以及单词Hacker
和Rank
我应该得到输出
Hce akr
Rn ak
但我之前得到了一条我不想要的换行符。当我将evenStr
和oddStr
初始化为“a”时,我得到了输出
a a
aHce aakr
aRn aak
我的问题是,为什么在我开始用偶数和奇数字符连接字符串之前首先打印字符串?