在 C 中使用空白 space 将 char 转换为 int

Convert char to int with blank space in C

我有一个 char 变量,例如 a = '123' 或 b = '\t123'。那么如何将它们转换成整数呢? 我的问题是读取表单文本文件包含多行字符,如 a 和 b。我想转换它们并保存到一个数组中。 这是我的代码:

int main(){
FILE *file_pid;
int i = 0;
int number[100];
char line[20];
    file_pid = fopen("pid.txt","r");
    while(fgets(line, sizeof line, file_pid) != NULL){
         number[i] = atoi(line);
         i++;
    } 
}

已编辑:我解决了我的问题。非常感谢!

您可以使用atoi()函数直接将字符串转换为整数。 C库函数:

int atoi(const char *str) 将字符串参数 str 转换为整数。 此函数 returns 将转换后的整数作为 int 值。如果无法执行有效转换,则它 returns 为零。 好的部分是它忽略了空格。

您可能不想将多字符字符常量存储在字符变量中。使用字符数组代替示例:

char c[] = " 123"; printf("%d\n", atoi(c));