我正在尝试编写一个函数,该函数创建一个具有随机数的数组,该数组以C的文本从1到10的升序排列。例如“一个”,“三个”,“八个”等 到目前为止,这是我的代码,但是它不正确地打印数组,我不知道问题是什么。
答案 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]
会为数组创建索引,这是您不希望这样做的,并且赋值操作不会复制您认为是的字符串。