如何将char值与int结合起来?

时间:2014-05-24 15:17:39

标签: c arrays int

我有一个像以下

的char数组
charArray[0] = '1'
charArray[1] = '2'
charArray[2] = '3'
charArray[3] = '4'
charArray[4] = '5'

如何将上面数组的char值组合成int,如下所示? 但我不想将所有价值合并到int

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

int number = 1234;

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

3 个答案:

答案 0 :(得分:4)

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

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

干杯。

答案 1 :(得分:2)

你应该使用atoi功能:

int atoi (const char * str);

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

和函数stncpy:

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

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

创建一个新字符串(使用strncpy函数),只包含charArray的4个第一个字符,然后在结果上使用函数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));
}

答案 2 :(得分:0)

您也可以使用替代方法。

请检查:Converting string to integer C

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

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