制作一个从函数返回字符串的数字拼写程序

Posted

技术标签:

【中文标题】制作一个从函数返回字符串的数字拼写程序【英文标题】:Making a number spell program that returns a string from a function 【发布时间】:2014-03-02 03:56:09 【问题描述】:

我对此很陌生,刚刚学习字符串,我想知道是否有人可以帮助我完成这个函数的创建。我正在尝试编写函数以使其返回字符串值,但是当我将函数定义为字符串时,我不断收到错误消息。我想在支票书写程序中使用这个函数来返回始终低于 100 美元的金额。我的数字拼写函数用作 void 函数,但我想将其用作返回字符串。但是,我似乎无法让函数返回字符串。这是代码。谢谢。

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];

【问题讨论】:

您的编译器不会警告您此代码中的问题吗? 是的,当我将函数从 void 更改为返回字符串并携带 int 值时,我得到了 47 个错误,所以我不确定我的代码出了什么问题。我只是不知道在函数中使用字符串并尝试返回我丢失的字符串是否有什么特别之处。 “我不断收到错误”。没有足够的信息来诊断问题。 所以尝试一些更简单的;编写一个返回“hello”的函数。一旦编译没有警告并且功能完美,添加一点复杂性、测试、重复,并且永远不要添加到不起作用的代码中。 【参考方案1】:

    首先,确保包含 std::string 标头:

    #include <string>
    using namespace std;
    

    您没有正确声明 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";   
    

    而且,对于

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

    您正在使用comma operator,它将始终返回第一个。我想这不是你想要的,改变它以适应你的目的。如果您想将它们“添加”在一起,您可以简单地使用

    return tens[firstDigit] + ones[secondDigit];
    

【讨论】:

谢谢你,这是一个错误,我将通过创建另一个字符串将这两个值加在一起并返回它来解决。 @user3369851 如果是这样,您可以简单地使用return tens[firstDigit] + ones[secondDigit]; 我进行了更改,谢谢,现在可以完美运行。我忘记定义命名空间 std 并在我的函数原型中使用 #include 现在它编译得很好。

以上是关于制作一个从函数返回字符串的数字拼写程序的主要内容,如果未能解决你的问题,请参考以下文章

函数参数,可以是字符串或数字,也可以是返回字符串或数字的函数

使用函数从数字创建字符串

编写一个函数,输和一行字符,将此字符串中最长的单词输出

sql语句 字符函数,数字函数

字符串函数不返回字符串? c++ [关闭]

如何在 JAVA 中设置主机名?