【问题标题】:Assign a value to a Character String..?为字符串赋值..?
【发布时间】:2015-11-19 16:42:16
【问题描述】:

这是我的问题。我有两个数组:一个是学生的总分,另一个是字符串。所以,当总分数组在一个范围内时,我希望计算机为字符串分配一个字母等级..

这是 a 想出的,但它不会编译,我没有别的想法:

【问题讨论】:

  • 像这样使用strcpy strcpy(grade[i], "A+");
  • strncpy 以获得额外的安全性,例如strncpy(grade[i], "A+", MAX_LETTER_SIZE);
  • @BLUEPIXY 我试过了,它只适用于 A+,然后当我打印它时,一切看起来都很有趣
  • 我认为你应该删除break;
  • 我要试一试..我只是想到了

标签: c arrays string character


【解决方案1】:

试试这个:

sprintf(grade[i], "%s", "A+");

【讨论】:

  • 为什么不直接使用strcpy
【解决方案2】:

什么是编译错误信息?

我假设您已正确分配资源。即使你有并且一切都在编译这行代码会导致一个数组边界错误(正如你定义的那样):

等级[i][MAX_LETTER_SIZE]

应该是:

sprintf(等级[i], "A+");

我真的会将数组作为指针发送。它更清洁,更高效。您可能还希望创建一个将分数映射到成绩的 LUT。这将减少您需要编写的代码量。否则,您将需要一系列 if 语句,而不是带有单个 if 语句的内部循环。祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2014-11-22
    • 1970-01-01
    相关资源
    最近更新 更多