【发布时间】:2021-07-04 22:42:09
【问题描述】:
我对编码非常陌生,并且正在学习在线课程,但帮助很少。我正在完成一项任务,创建一堆将在以后使用的函数。在这一点上,我还没有学到任何关于点、数组或递归的知识。我对字符串的了解几乎仅限于“printf”函数。
话虽如此,我已经得到了关于函数“ranking_to_string”应该如何操作的描述:
这个函数应该转换 hand_ranking_t 枚举值传递 到一个描述它的字符串中。
这里的枚举类型是hand_ranking_t,它按照从STRAIGHT_FLUSH (0) 到NOTHING (8) 的数值降序排列一手牌。说了这么多,这是我创建的功能,以尝试遵循我的指示:
const char * ranking_to_string(hand_ranking_t r) {
switch (r) {
case STRAIGHT_FLUSH: printf("STRAIGHT_FLUSH\n"); break;
case FOUR_OF_A_KIND: printf("FOUR_OF_A_KIND\n"); break;
case FULL_HOUSE: printf("FULL_HOUSE\n"); break;
case FLUSH: printf("FLUSH\n"); break;
case STRAIGHT: printf("STRAIGHT\n"); break;
case THREE_OF_A_KIND: printf("THREE_OF_A_KIND\n"); break;
case TWO_PAIR: printf("TWO_PAIR\n"); break;
case PAIR: printf("PAIR\n"); break;
case NOTHING: printf("NOTHING\n"); break;
default: printf("Invalid thing\n"); break;
}
return EXIT_SUCCESS;
}
我想知道,我在函数末尾返回 EXIT_SUCCESS (0) 是否正确?有没有另一种方法可以使用 printf 将输入的枚举值转换为字符串?
【问题讨论】:
-
EXIT_SUCCESS是一些数字常量。您的函数虽然返回char *... -
从这个函数返回任何东西是没有意义的,你应该把它设为
void类型。如果您确实需要返回EXIT_SUCCESS,则应将其设为int。