C语言字符串读取数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言字符串读取数字相关的知识,希望对你有一定的参考价值。

我知道用isdigit能提取单个数字,但是比如C11H22ON之类的怎么提取出a[i]=11,a[i]=22呢,
求大神指点
就是UVA 1586

#include <stdio.h>

const int N = 20;

int main() 
int i,j = -1,fa = 0,fb = 0,a[N];
char t[] = "C11A6689H22ON";
for(i = 0; t[i]; ++i) 
if(t[i] >= '0' && t[i] <= '9') 
fb = 1;
if(fa < fb) // 从字符到数字
a[++j] = t[i] - '0';
fa = 1;

else // 从数字到数字
a[j] = 10 * a[j] + t[i] - '0';

else fa = 0;

for(i = 0; i <= j; ++i)
printf("%d ",a[i]);
printf("\\n");
return 0;

    

参考技术A atoi(char*) 参考技术B 这个属于词法分析,要涉及自动机的一些知识,学学还是很有用的。

以上是关于C语言字符串读取数字的主要内容,如果未能解决你的问题,请参考以下文章

C语言如何读取TXT全部字符?

C语言提取字符串中的所有数字

C语言将字符串转换为数字出错,请教高手

C语言怎样将数字从文件里逐个读取出来

C语言如何读取TXT中的中文字符串

C语言怎样读取TXT文档中两行字符之间的数据,如begin和end之间的3行数据