int a;
char arr1[5]="9657"
sscanf(arr1,"%d",&a);//从arr1字符数组中读取一个整数
sprintf(arr1,"%d",a+1);//把a+1的值“转换”成字符串,保存到arr1数组。
/*
如果考虑到 进位的情况,那么arr1数组应该有足够的长度保存进位产生的新字符。
*/
以下程序不考虑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);
}
不建议转换为整数后再转回来,
为什么不直接 arr1[14] += 1 ?,如果arr1[14] = '9',则加1后变为 ':'
可以的,c中有一个函数atoi,可以转换的,不过你看是直接转换,还是间接转换了。
那就看你的思路了。