读取所有后续字符并转换为int

时间:2012-11-17 20:43:13

标签: c string

我正在读取一个txt文件并获取所有不是空格的字符,使用(int)c-'0'将它们转换为int,这样就可以了。

问题是如果数字超过1位数,因为我正在通过char读取char。

我怎么能像chars序列一样读取,将这个chars序列转换成int?

我尝试使用字符串,但是当我尝试将此字符串传递给我的其他函数时,它将每个索引视为一个数字,但我需要的是将整个字符串视为一个数字。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

进行转换的一种便捷方法是将整数读入缓冲区(字符串),然后调用atoi。使三元组确保字符串正确地以空值终止。

答案 1 :(得分:0)

一个解决方案,我不会说你的情况好坏,因为你没有提供任何代码,但你可以做这样的事情:(伪代码)

int i;
int val = 0;
char *string = "5238785";
for (i = 0; i < strlen(string); i++) {
    val = val * 10 + atoi(string[i]);
}

注意:我简化了它,你应该做更多的字符串控制,以确保你不会越界等。确保字符串是以NULL结尾的\0,但是这个概念是你当时读了一个数字,然后移动你到目前为止所读到的“向前一步”,以适应下一个数字。