【问题标题】:Parse int and char into two separate values [closed]将 int 和 char 解析为两个单独的值
【发布时间】:2014-10-11 23:39:26
【问题描述】:

我遇到了尝试将 1s 或 2d 分成 int 1 和 char 's' 然后将它们存储为单独值的问题。我将如何去做这件事。我知道我不能用strtok 来做,因为没有分隔符。

【问题讨论】:

  • 你可能想看看例如strtol.
  • 我使用了 strtol,它给了我 int 但我如何也得到 char?是保存在指针中的吗?
  • sscanf(str, "%d%c", &ivar, &cvar);?

标签: c string parsing char int


【解决方案1】:

使用strtol。例如,

char *endptr;
val = strtol(input_str, &endptr, 10;
next_char = *endptr;

如手册页中所述,http://man7.org/linux/man-pages/man3/strtol.3.html,第二个参数是指向 char 指针的指针,转换后,char 指针指向下一个字符。

【讨论】:

    【解决方案2】:

    您可以通过索引访问字符串中的每个字符。要将 char 转换为 int(不是通过 ascii 值,'1' 到 1),您只需执行以下操作:

    int a = c[0]-'0';
    

    对于字符:

    char b = c[1];
    

    【讨论】:

    • 如果字符串存储在指针中会怎样?
    • 什么意思?我用于字符串 (c) 的变量应该是 char 数组或指向字符串的 char*。它适用于这两种情况。
    • 好的,谢谢。然后我知道现在发生了什么。谢谢!
    猜你喜欢
    • 2012-04-01
    • 1970-01-01
    • 2018-03-31
    • 2020-12-06
    • 1970-01-01
    • 2010-12-20
    • 2021-02-18
    • 2021-04-03
    • 1970-01-01
    相关资源
    最近更新 更多