【发布时间】:2017-10-22 06:14:27
【问题描述】:
我有如下代码行,
char conv[20]="score: 34";
我想提取“conv”字符串中的数字(34)并将其转换为整数。我使用了“atoi”功能。但结果为 0。
printf("score: %d\n",atoi(conv)); //this prints 'score: 0'
有人可以帮我把字符串中的数字转换成整数吗?
【问题讨论】:
-
atoi()之类的函数只有在字符串是纯数字时才有效。您必须先找到号码。您可以使用 strpbrk(conv,"0123456789") 之类的函数来执行此操作。 -
为了更深入地了解杂草,您需要将
+-作为字符包含在要转换的字符串的开头并检查下一个字符是否为0-9。还推荐strtol而不是atoi,atoi无法验证是否已成功转换。 -
如果您知道字符串具有该格式,您也可以使用
sscanf(conv, "score: %d", &n);。 -
@TomKarzes 它有效.. 谢谢..
标签: c string type-conversion int atoi