很抱歉,如果这是一个非常简单的问题,但我对C很新。我希望能够将char * s转换成双打和整数,似乎无法找到解释如何。
编辑: 我正在阅读用户输入,这是一个char *。我希望将输入的一半(例如“23”)转换为23和一半,例如“23.4”转换为23.4。
答案 0 :(得分:15)
您可以施放 char*
,如下所示:
char *c = "123.45";
int i = (int) c; // cast to int
double d = (double) c; // cast to double
但这会产生荒谬的结果。它只是强制指针被视为整数或双精度。
我认为你想要的是解析(而不是强制转换)文本到int
或double
。试试这个:
char *c = "123.45";
int i = atoi(c);
double d = atof(c);
答案 1 :(得分:2)
严格来说,你可以这样做:(int)指针。
但是,您可能正在寻找atoi和atof功能。
atoi是一个函数,它将指向包含十进制整数的字符串的char *转换为整数。
atof同样是双倍的。