2014-03-02 89 views
0

我對此很新,剛纔學習了字符串,我想知道是否有人可以幫我完成創建這個功能。我試圖編寫該函數,以便它返回一個字符串值,但當我將該函數定義爲字符串時,我不斷收到錯誤。我想在一個支票寫入程序中使用這個函數來返回總是低於100美元的金額。我的數字拼寫函數作爲一個無效函數,但我想用它作爲返回一個字符串。但是,我似乎無法得到返回字符串的函數。這是代碼。謝謝。製作一個數字拼寫程序,從函數返回一個字符串

string spellNumber(int firstDigit, int secondDigit) 
{ 
    string tens[] {"", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"}; 

    string teens[]{"", "eleven", "tweleve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"}; 
    string ones[]{"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; 

    if ((firstDigit == 0) && (secondDigit == 0)) 
     return "zero"; 
    if ((secondDigit > 0) && (secondDigit<10) && (firstDigit == 0)) 
     return ones[secondDigit]; 
    if (firstDigit == 1) 
     return teens[secondDigit]; 
    if (firstDigit >1) 
     return tens[firstDigit], ones[secondDigit]; 
} 
+0

不你的編譯器警告你在這段代碼的問題? – Beta

+0

是的,一旦我將函數從void更改爲返回一個字符串並攜帶int值,我得到了47個錯誤,因此我不確定代碼中出現了什麼問題。我只是不知道在函數中使用字符串是否有什麼特別之處,並且試圖返回它,以至於我錯過了什麼。 – user3369851

+3

「我不斷收到錯誤」。沒有足夠的信息來診斷問題。 –

回答

1
  1. 首先,確保你包括std::string頭:

    #include <string> 
    using namespace std; 
    
  2. 您沒有正確申報string陣列。

    string tens[] {"", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"}; 
    
    string teens[]{"", "eleven", "tweleve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"}; 
    string ones[]{"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; 
    

    string tens[] = {"", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"}; 
    
    string teens[] = {"", "eleven", "tweleve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"}; 
    string ones[] = {"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; 
    
  3. 而且,對於

    return tens[firstDigit], ones[secondDigit]; 
            ^
             |     
           comma operator 
    

    您使用comma operator,這將始終返回的第一個改變。我想這不是你想要的,改變它以適合你的目的。如果你想「添加」在一起,你可以簡單地使用

    return tens[firstDigit] + ones[secondDigit]; 
    
+0

謝謝你是一個錯誤,我會通過添加另一個字符串來解決這兩個問題值一起並返回它。 – user3369851

+0

@ user3369851如果是這樣,您可以簡單地使用'return ten [firstDigit] + ones [secondDigit];'。 – herohuyongtao

+0

我做了這個改變,謝謝,現在完美。我忘記了定義命名空間標準,並在我的函數原型中使用#include ,現在編譯好了。 – user3369851

相關問題