【发布时间】:2015-06-01 10:45:56
【问题描述】:
我搜索了很长时间才找到答案,但我只能找到solution 的C++ 似乎不适用于C。我正在尝试将 const char * 的参数转换为 char 以在我的 switch 语句中使用。我尝试了各种方法,例如strdup(),但都不成功。
#include <stdio.h>
int main(int argc, const char *argv[]) {
char argOne = argv[1];
char argTwo = argv[2];
switch(argOne) {
case '1234' :
printf("1234!\n" );
break;
default :
printf("Invalid\n" );
}
}
编译时:
警告:使用“const char *”类型的表达式初始化“char”的整数转换指针不兼容 [-Wint-conversion]
char argOne = argv[1]; ^ ~~~~~~~警告:将 case 值转换为 switch 条件类型的溢出(825373492 到 52)[-Wswitch]
case '1234' : ^
【问题讨论】:
-
您需要从基本的 C 教程开始。您的代码有很多问题。
-
哪个教程?我确实研究了几个小时,只需要一个提示。
-
一个带你从指针到字符和 c 字符串到 switch/case 语句的工具。
-
好的,但是我花了几个小时在无尽的垃圾中寻找那个。我不是在寻找推荐,而是您提到的教程名称。
-
几乎所有教程。如果不需要涵盖任何复杂的内容。
标签: c char switch-statement