【发布时间】:2016-02-25 19:50:00
【问题描述】:
输入(字符串):E2
输出:
字符是E
数量是2
我怎样才能得到它? 谢谢
我使用 strtol,但它仅适用于第一个字符为 num 如果我的输入是 2E,它可以工作,但如果它是 E2,那么失败。
int main()
{
char str[30] = "2E";
char *ptr;
long ret;
ret = strtol(str, &ptr, 10);
printf("The number(unsigned long integer) is %ld\n", ret);
printf("String part is %s", ptr);
return(0);
}
我想要的是,如果我输入 E2,ret 是 2,ptr 是 E
【问题讨论】:
-
请更具体地说明您希望允许的输入:您在解析棋盘位置吗?十六进制数?单个字母和单个十进制数字的任何组合?
-
@MOeh 第一个字符是单个字母,第二个是十进制数。
-
如果
str包含"E2",您希望在ret中得到什么?你写“然后失败”。它是如何失败的?? -
@MichaelWalz 上面的代码有效。但是如果我的输入是E2,那么它会得到“”数字(无符号长整数)是0,“字符串部分是E2。”
-
@MichaelWalz 我输入 E2 时出现异常,ret 为 2,ptr 为 E