将char转换为int并在C中使用空格

时间:2019-04-10 16:25:42

标签: c string int

我有一个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++;
    } 
}

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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:-1)

C参考函数atoi()将字符串转换为整数

stdlib的此功能会将字符串转换为整数。并且它将忽略空格。

atoi()的用法:

int atoi ( const char * str );

代码示例::-

#include<stdio.h>
#include<stdlib.h>

int main(){
    int i;
    char number [255];
    printf("Enter a number: ");
    fgets(number, 255, stdin);
    i = atoi(number);
    printf("You Entered %d", i);
    return 0;
}