c语言中怎样从字母和数字组成的字符串中提取数字?
问题如题,比如a123b11c22,在遇到字母时就把它后面的数字提取出来,并且使后面的数字(如a后面的123)可以和其他int数据比较大小,多谢指点!!
------解决方案--------------------用strtok,加atoi
------解决方案--------------------int型数据跟字符串转换用itoa就可以了。
而比较应该不难吧,遍历数组,比较ASC码,是数字则输出到新数组里,然后对新数组做atoi的操作就可以和int数据比较了。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
[zhanghua@localhost TEST]$ cat str-num-test.c
#include <stdio.h>
int main()
{
char buf[] = "aaaBBB123addd";
int num = 0;
char *p;
p = buf;
while (*p != '\0')
{
if (*p > '0' && *p < '9')
break;
p++;
}
num = atoi(p);
printf("num = %d\n", num);
return 0;
}
[zhanghua@localhost TEST]$ ./str-num-test
num = 123
------解决方案--------------------咋对我1楼的回复视而不见呢?strtok()函数不是非常的方便帮你一个个的找出数字子串来吗?