【问题标题】:Convert char to int with blank space in C在C中使用空格将char转换为int
【发布时间】:2019-04-10 16:25:42
【问题描述】:

我有一个 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()strto(u)l(),它将忽略前导空格
  • 你的意思是 chr = " 123"chr = "\t123" 可能
  • @Ctx atoi() 没有帮助。
  • @bruno 两种情况。

标签: c string int


【解决方案1】:

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

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

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

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

【讨论】:

猜你喜欢
  • 2014-02-07
  • 2013-08-10
  • 2018-02-10
  • 2010-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
相关资源
最近更新 更多