我的代碼需要一個字符串,並顯示偶數索引位置字母,然後在一個空格後顯示奇怪的索引字母。 就像我給一個輸入Hacker
它應該給Hce akr
。 現在我的代碼沒有給我第二個輸入的正確答案。 就像給第二個輸入Rank
它應該給Rn ak
。 而不是它給出了一個k
。它錯過了R
。爲什麼我的字符串第二次沒有正確輸入輸入?
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
void f(string a) {
string odd,even;
for(int i=0; a[i] != '\0'; i++) {
if(i % 2 == 0) {
even = even + a[i];
} else {
odd = odd + a[i];
}
}
cout << even << " " << odd << "\n";//<<<<<<I THINK THIS \n IS THE
//PROBLEM BUT I NEED THIS \n.I OBESERVED THAT ON REMOVING \n, CODES
// WORKS CORRECTLY.
}
int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
string str;
int t;
cin >> t;
for(int i=0; i < t; i++) {
std::cin.ignore();
getline(cin, str);
f(str);
}
return 0;
}
使用'i!= a.size()'作爲條件,'a [i]!='\ 0''有點可笑 –
[cin和getline跳過輸入](http:/ /stackoverflow.com/questions/10553597/cin-and-getline-skipping-input),檢查哪些忽略參數使用。 – stefaanv