【问题标题】:Conversion of char to int in C? [duplicate]在C中将char转换为int? [复制]
【发布时间】:2017-12-11 22:46:39
【问题描述】:

要将String转换为整数,我知道有一个函数atoi() 但我发现这个也有帮助! 请解释一下 int h1 = (int)str[1] - '0'; 我在这里创立了这个 http://www.geeksforgeeks.org/cpp-program-convert-time-12-hour-24-hour-format/

【问题讨论】:

  • 这怎么一样?还有什么不清楚?任何初学者的 C 书都会解释一切。
  • 没有人会通过那个链接。 str 定义在哪里?根据实际代码,这甚至可能无法编译(甚至更糟)。
  • stackoverflow.com/questions/628761/… 解释了这一点的本质。 '1' 和 '0' (通常)彼此相邻,因此 '1' - '0' 是 1,'2' - '0' 是 2...
  • 试一试,你会发现它不起作用。调试它,你就会明白为什么它不起作用了。
  • @doctorlove-- 请注意,由于标准中未指定特定字符编码,因此拉丁字母的相邻字符,例如,不需要以连续序列编码;你似乎引用了这个事实。 Yet, the Standard does require that the characters 0,..., 9 be encoded in a contiguous sequence. 所以,10总是彼此相邻。

标签: c++ c


【解决方案1】:

它基本上取str 中的第二个字符(记住数组是从零开始的)并假设它在'0'..'9' 范围内。为此,后面是减去'0'的ascii码

这仅适用于单个字符,不能替代atoi

【讨论】:

    猜你喜欢
    • 2013-01-10
    • 1970-01-01
    • 2016-02-20
    • 2012-07-06
    • 2014-02-07
    • 2013-08-10
    • 2018-02-10
    • 2010-09-19
    相关资源
    最近更新 更多