例如:我输入12345,那么数组中数的存储情况为:a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5.
最关键的是这个整数是任意长度的,开始是不确定,希望各位高手帮忙!
10 个解决方案
#1
数组可容纳的最大量是 uint.maxvalue,32 位机上是 4294967295,是不是够大了?
#2
你只需要申请足够大的数组就可以了,也只能这样。
#3
你随便搜索一下高精度运算,代码讲解是一片片的。。
#4
读入的时候用字符读然后-'0'在存入int数组...
#5
一个方法:
以字符格式读进你输入的数,如12345.
然后strlen这个字符串,然后动态创建对应个数的数组malloc,最后将字符串的对应字符存储到这个数组中。
以字符格式读进你输入的数,如12345.
然后strlen这个字符串,然后动态创建对应个数的数组malloc,最后将字符串的对应字符存储到这个数组中。
#6
你当做字符来处理不就完了么?
把你的数组定义为字符数组,输的时候,用%c,这样也不影响输入的样式
把你的数组定义为字符数组,输的时候,用%c,这样也不影响输入的样式
#7
C++对C函数也是兼容的
#8
int main()
{
char *s;//可以当作数组来用
s=new char[255];//s=(char*)malloc(255);//申请“足够大”的空间,即使不知道确切的位数,但总是知道一个大概的数量的
gets(s);//从键盘读入字符串
int len=strlen(s);//计算字符数
printf("%s\n",s);//以字符串输出
for(int i=0;i<len;i++)
printf("%c",*(s+i));//printf("%c",s[i]);//按字符输出
delete []s;//和malloc()对应的用free(s);
s=0;
return 0;
}
#9
这个问题还是有办法解决的,方法是从键盘缓冲区中直接取字符数就行了,如何从键盘缓冲区中取字符数?从stdin这个FILE结构中提取即可,stdin的结构不同系统可能会有不同,具体内容在stdio.h头文件找找就知道了。以VC为例,_cnt成员保留了缓冲区中当前的字符数量,_base成员是缓冲区首地址,示例代码如下:
char *cpBuffer;
int iCount;
cin.get(); //随便用一个输入都可
iCount = stdin->_cnt; //取得字符数量
cpBuffer = new char[iCount + 1]; //加1是考虑\0
memcpy(cpBuffer, stdin->_base, iCount?iCount:1);
*(cpBuffer+iCount) = '\0';
原理是这样了,可根据你的环境自行作些修改。
#10
学习
#1
数组可容纳的最大量是 uint.maxvalue,32 位机上是 4294967295,是不是够大了?
#2
你只需要申请足够大的数组就可以了,也只能这样。
#3
你随便搜索一下高精度运算,代码讲解是一片片的。。
#4
读入的时候用字符读然后-'0'在存入int数组...
#5
一个方法:
以字符格式读进你输入的数,如12345.
然后strlen这个字符串,然后动态创建对应个数的数组malloc,最后将字符串的对应字符存储到这个数组中。
以字符格式读进你输入的数,如12345.
然后strlen这个字符串,然后动态创建对应个数的数组malloc,最后将字符串的对应字符存储到这个数组中。
#6
你当做字符来处理不就完了么?
把你的数组定义为字符数组,输的时候,用%c,这样也不影响输入的样式
把你的数组定义为字符数组,输的时候,用%c,这样也不影响输入的样式
#7
C++对C函数也是兼容的
#8
int main()
{
char *s;//可以当作数组来用
s=new char[255];//s=(char*)malloc(255);//申请“足够大”的空间,即使不知道确切的位数,但总是知道一个大概的数量的
gets(s);//从键盘读入字符串
int len=strlen(s);//计算字符数
printf("%s\n",s);//以字符串输出
for(int i=0;i<len;i++)
printf("%c",*(s+i));//printf("%c",s[i]);//按字符输出
delete []s;//和malloc()对应的用free(s);
s=0;
return 0;
}
#9
这个问题还是有办法解决的,方法是从键盘缓冲区中直接取字符数就行了,如何从键盘缓冲区中取字符数?从stdin这个FILE结构中提取即可,stdin的结构不同系统可能会有不同,具体内容在stdio.h头文件找找就知道了。以VC为例,_cnt成员保留了缓冲区中当前的字符数量,_base成员是缓冲区首地址,示例代码如下:
char *cpBuffer;
int iCount;
cin.get(); //随便用一个输入都可
iCount = stdin->_cnt; //取得字符数量
cpBuffer = new char[iCount + 1]; //加1是考虑\0
memcpy(cpBuffer, stdin->_base, iCount?iCount:1);
*(cpBuffer+iCount) = '\0';
原理是这样了,可根据你的环境自行作些修改。
#10
学习