2014-03-02 53 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

相关问题