2015-09-29 27 views
0

此程序的目標是創建一個函數(combineStr),它將字符串連接多次。C++字符串不會正確輸出值

#include <iostream> 
using namespace std; 

string combineStr(string input, int times) { 
    string output = ""; 
    for(int i = 0; i < times; i++){ 
     output += times; 
    } 
    return output; 
} 

int main(){ 
    string input; 
    int times; 
    cout << "Enter a string: "; 
    cin >> input; 

    cout << "Enter a number of times: "; 
    cin >> times; 
    if(times == 0){ 
     return 0; 
    } 

    string output = combineStr(input,times); 

    cout << "The resulting string is: " << output << endl; 
} 

出於某種原因,當我編譯和運行程序時,它簡單地輸出「所得到的字符串是:」無重複的字符串。幫幫我?

+0

要添加整數字符串變量,我認爲這是問題。 'output + = times;'你應該寫'output + = input;' – Himanshu

+1

爲什麼這會變成upvoted,geez。錯字問題在這裏是無關緊要的。你應該使用調試器。 –

+0

這是問題。如果時間是五次,輸出將包含五次不可打印的字符0x05。 – user4581301

回答

1

修改循環內的語句。

output + = times;輸出+ =輸入;

string combineStr(string input, int times) { 
    string output = ""; 
    for(int i = 0; i < times; i++){ 
     output += input; 
    } 
} 
+0

OMG我很愚蠢......哈哈謝謝你指出。 * facepalms * –

+0

@CalebMoriarty小錯誤。它發生在每個人身上。乾杯。 – Gangadhar