C语言强制类型转换,从CHAR[]转换至整形

2025-01-03 17:25:38
推荐回答(4个)
回答1:

int a;
char arr1[5]="9657"

sscanf(arr1,"%d",&a);//从arr1字符数组中读取一个整数

sprintf(arr1,"%d",a+1);//把a+1的值“转换”成字符串,保存到arr1数组。

/*
如果考虑到 进位的情况,那么arr1数组应该有足够的长度保存进位产生的新字符。
*/

回答2:

以下程序不考虑9.....99这种情况,即加1后会导致总位数加1。

#include
#include "string.h"

void inc(char *a)
{
if(a)
{
int i=strlen(a)-1;
a[i]++;
while(i>=0 && a[i]>'9')
{
a[i]='0';
a[i-1]++;
i--;
}
}
}

void main()
{
char arr1[5]="9657";
inc(arr1);
puts(arr1);
}

回答3:

不建议转换为整数后再转回来,
为什么不直接 arr1[14] += 1 ?,如果arr1[14] = '9',则加1后变为 ':'

回答4:

可以的,c中有一个函数atoi,可以转换的,不过你看是直接转换,还是间接转换了。
那就看你的思路了。