字符串定义问题

时间:2011-04-25 16:06:59

标签: string function

int main() 
{ 
    int score; 
    string scoreLetter; 
    char A, B, C, D, F; 

    cout<<"Enter the grade: "; 
    cin>> score; 

    void letterGrade (int score); 
    void gradeFinal (int score); 

    cout<<"The letter grade is "<< scoreLetter<<"."; 
} 

void letterGrade (int score) 
{ 
    if (score >= 90) { 
        string scoreLetter = 'A'
    } else if (score >= 80) { 
        scoreLetter = 'B'
    } else if (score >= 70) 

- 编译时,我得到了line scoreLetter ='A'等错误。这有什么问题?错误状态'scoreLetter'未定义。我是否需要在函数中定义scoreLetter而不是main?

3 个答案:

答案 0 :(得分:1)

C / C ++中的单引号用于定义字符,而不是字符串。请改用双引号。 string scoreLetter = "A"。如果std::string是您尝试使用的内容,则还需要包含标题:#include <string>using std::string

答案 1 :(得分:0)

你的代码被截断了,但我认为你可以从正常情况下调用这些功能。

您还应该尝试更具体地说明您所使用的语言,即我相信C语言。

对函数的正确调用将是:

letterGrade(评分);

是的,你需要在全局范围内定义字符串变量,所以只需将它移出main和它上面。

    string scoreLetter; 
    int main() 
{ 
    int score; 
    char A, B, C, D, F; 

    cout<<"Enter the grade: "; 
    cin>> score; 

    letterGrade (score); 
    gradeFinal (score); 

    cout<<"The letter grade is "<< scoreLetter<<"."; 
} 

void letterGrade (int score) 
{ 
    if (score >= 90) { 
        scoreLetter = "A"
    } else if (score >= 80) { 
        scoreLetter = "B"
    } else if (score >= 70) 

答案 2 :(得分:0)

您需要返回您的函数确定的scoreLetter应该是什么值,并且main中有scoreLetter = letterGrade(score);之类的行。你不能从另一个函数设置局部变量,除非调用者通过引用将它们传递给你,这在这里没有发生(并且在大多数情况下,不应该像这样被滥用)。

除此之外,看起来你正在混淆声明和调用。 void letterGrade (int score);实际上并未调用letterGrade;它只是说一个letterGrade函数,它接受一个int,我们称之为“得分”。 (score只有一个名称是原型的一部分;它与你的score变量没有关系。)所以你可能会发现,如果你设法让你的代码进行编译,那么做一些与你期望它完全不同的事情。

要调用某个函数,您可以执行类似letterGrade(score);的操作,或者如果您遵循我的第一个建议,scoreLetter = letterGrade(score);

string letterGrade (int score); 
// void gradeFinal (int score);  // not used in this snippet

int main() 
{ 
    int score; 
    string scoreLetter; 
    char A, B, C, D, F; 

    cout<<"Enter the grade: "; 
    cin>> score; 

    scoreLetter = letterGrade(score);

    cout<<"The letter grade is "<< scoreLetter<<"."; 
} 

string letterGrade (int score) 
{
    string grade;
    if (score >= 90) { 
        grade = "A";
    } else if (score >= 80) { 
        grade = "B";
    } else if (score >= 70)

    ...

    return grade;
}