用C语言在文本中创建数字数组

时间:2019-12-26 12:45:51

标签: c arrays string function

我正在尝试编写一个函数,该函数创建一个具有随机数的数组,该数组以C的文本从1到10的升序排列。例如“一个”,“三个”,“八个”等 到目前为止,这是我的代码,但是它不正确地打印数组,我不知道问题是什么。

2 个答案:

答案 0 :(得分:0)

根据您的代码,您仍然对C数组和字符串不太了解。喜欢:

 value[5] = (char) "Zero";

您不能只将字符串文字转换为char

还有一种更好的方法将数字转换为字符串,因为您只需要处理1..10数字:

const char *number_strs[11] = {
    "Zero", "One", "Two", /* and the rest */
};
// to convert 9 to "Nine"
const char *Nine = number_strs[9];

您可能需要仔细阅读有关数组和字符串的C语言书,因为我在这里无法提供所有详细信息,

祝你好运C。

答案 1 :(得分:0)

我认为您想要的是:

char *tostring(char *value, int num){

    switch(num){
        case 0:
            strcpy(value, "Zero");
            break;
        // etc
    }
    return value;
}

该函数现在接收一个指向字符数组的指针,然后将文本字符串复制到该数组。最后,将指针返回该函数接收到的数组。

作为您的错误的总结:

  • char tostring(...将返回一个字符;

  • tostring(char value[5]是正确的,但我更喜欢使用指针符号char *value并保留其大小;

  • value[5] = (char) "zero";是非常错误的。 value[5]会为数组创建索引,这是您不希望这样做的,并且赋值操作不会复制您认为是的字符串。