[问题] 如何得知一串数字由几个数字组成

楼主: GoodmanYY (GOgoHigher)   2014-06-20 00:14:24
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
DEV C++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
问题:使用一个会随使用者所输入的数字字符个数而改变大小的字符阵列
使用者输入最少一个,最多六个数字(范围0~999999)
假如输入5的话,阵列里面有一个元素为5
假如输入555的话,阵列里面有三个元素为555
假如输入555555的话,阵列里面有六个元素为555555
不想预先配置阵列大小
想使用动态配置内存字符阵列大小下手
但是却打不出关键程式码
喂入的资料(Input):
1).5
2).55
3).555
预期的正确结果(Expected Output):
1).有1个数字为5
2).有3个数字为555
3).有6个数字为555555
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *digptr;
char dig[?]; //不知问号该填什么
printf("请输入数字:");
scanf("%c", &dig); //输入数字并放在dig阵列里面
digptr = (char *) malloc( ? * sizeof(char) );
printf("有%d个数字为%c\n", ,dig);
system("pause");
return 0;
}
*****补充说明:*****
char[?]和malloc的问号是我不知该如何下手
因为卡在不知道该如何得知会输入几个数字个数
问题可能对大家来说很浅,但是我想破头还是不知该如何实现
请各位提点一下谢谢。
作者: firejox (Tangent)   2014-06-20 00:38:00
第一个问号那边 就想最长输入有多长就好了
楼主: GoodmanYY (GOgoHigher)   2014-06-20 10:35:00
请问有方法可以根据使用者输入几个数字而改变阵列大小的方法吗? 而不预先配置字符阵列大小
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-06-20 11:40:00
现在我要开一条弹性马路,根据今天有多少车通过改变大小请问如何办到不然改一下 现在我想开一部弹性公共汽车 根据今天有多少乘客改变车的大小 请问如何办到
作者: blackwindy (黑色的风)   2014-06-20 11:52:00
std::vector std::string std::stream
楼主: GoodmanYY (GOgoHigher)   2014-06-20 13:03:00
M大,就是这意思,请问可能办到吗?b大,是要用到C++的物件才可以实现吗?
作者: LPH66 (-6.2598534e+18f)   2014-06-20 14:26:00
可能, 但你必须要自己处理使用者输入(以弹性公共汽车的比喻来说, 你得管理一下上车的人, 这样一来当车子不够大时你才能够加大公共汽车) 8F 推的那些物件把这些事都包起来了 (找了别人帮忙管理弹性公共汽车)
作者: Killercat (杀人猫™)   2014-06-20 14:49:00
用C的话 GLib算是个不错的STL在C上的替代品
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-06-20 18:03:00
我是觉得很麻烦而且意义不大啦 现在内存又不是只有4K你搞linked list、搞realloc等等effort远超过我割一块buffer 就可以让user打到地老天荒都打不满顶多注意一下overflow以免遭人利用 方法也很简单以前有人想跟你一样的事情 他还写出分成两个armrealloc的程式 也在本板 算他有想法 但是你知道realloc里面OS耗费多少effort就不会想要这样做了Premature optimization is the origin of all sins
楼主: GoodmanYY (GOgoHigher)   2014-06-20 20:16:00
囧...看起来是个浩大的工程我以为只是在C语言加个指令这样,看来是我想太简单了谢谢大家热心地回答

Links booklink

Contact Us: admin [ a t ] ucptt.com