我有一个像以下
的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值组合成一个字符串?
答案 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)