将整数的字符[]解析为整数i

我使用fgets()将文件输入读取到

charbuf[10];

该文件的输入是

10,10,4,10

我想遍历该行,并将每个数字存储在char数组中,作为其各自的整数值,但我对如何实现这一点有点迷茫。如果有人能给我指出正确的方向,我会非常感激,谢谢

有不同的方法可以做到这一点。如果你正在学习C,我建议你自己动手编写解决方案,在理解了它的工作原理后,使用一些标准库函数,如@Jeff Holt所说的strtok

最简单的方法是创建一个变量,该变量将是我们正在读取的当前数字,并在buf数组中迭代,并在每一步检查当前字符是否为数字

请参阅有关将字符转换为整数的问题

所以结果会是这样的:

const int size=10;
字符buf[大小];
//填写buf,但确保输入少于10个字符
//为结果创建数组
字符结果[大小];
int result_size=0;
//也可以是char,但如果输入的数字足够大,则可能会溢出
int当前_值=0;
对于(int i=0;i<size;i++){
if(buf[i]>=“0”&buf[i]<=“9”){
//转换为int并添加到当前_值
}否则{
//存储解析整数
结果[当前_大小]=当前_值;
当前_大小++;
当前_值=0;
}
}

发表评论