【问题标题】:How to combined the char value to int?如何将char值组合为int?
【发布时间】:2014-05-24 15:17:38
【问题描述】:

我有一个如下所示的 char 数组

charArray[0] = '1'
charArray[1] = '2'
charArray[2] = '3'
charArray[3] = '4'
charArray[4] = '5'

如何将上述数组的字符值组合成int,如下所示? 但我不想将所有值合并到 int

我只想将charArray[0]~charArray[3] 合并成int

int number = 1234;

如何将上述数组的char值组合成一个字符串?

【问题讨论】:

  • 你有什么理由忽略最后一个数字?不允许5号吗?不超过4位数?不允许大于 10,000 的结果?

标签: c arrays int


【解决方案1】:

我希望,通过向您展示以下代码,这将使您更好地了解如何解决编程问题。

int number = (charArray[0] - '0')*1000 + 
             (charArray[1] - '0')*100 + 
             (charArray[2] - '0')*10 + 
             (charArray[3] - '0');

干杯。

【讨论】:

  • 反向结果4321是故意的吗?留给 OP 解决 如何 去做,而不是用勺子喂答案?
  • @Jongware -- 已修复。我认为看到一种解决问题的模式对 OP 很有帮助。
  • 尝试使用 while 或 for 循环自动完成。
【解决方案2】:

你应该使用 atoi 函数:

int atoi (const char * str);

接收一个字符串并将其作为 int 类型的值返回。

还有函数stncpy:

char * strncpy ( char * destination, const char * source, size_t num );

将源的前 num 个字符复制到目标。

创建一个仅包含 charArray 的前 4 个字符的新字符串(使用 strncpy 函数),然后在结果上使用函数 atoi

这样您就可以从 charArray 中获取任何大小的字符串,而无需手动计算数字

示例(根据您的代码,假设您想保持 charArray 不变而不更改它):

int main(void)
{
   char charArray[6]="12345";
   char newcharArray[5];//one char less than charArray
   strncpy(newcharArray,charArray,4);
   printf("%d\n",atoi(newcharArray));
}

【讨论】:

    【解决方案3】:

    您也可以使用其他方法。

    请查看:Converting string to integer C

    你也可以使用 strtoumax() 函数。

    查看示例:http://pic.dhe.ibm.com/infocenter/zos/v1r12/index.jsp?topic=%2Fcom.ibm.zos.r12.bpxbd00%2Fstrtoumax.htm

    【讨论】:

      猜你喜欢
      • 2020-07-08
      • 2021-10-15
      • 1970-01-01
      • 2020-11-12
      • 1970-01-01
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多