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

楼主: RealJack   2014-06-21 01:17:35
因为你的输入刚好是整数
我打了一个方法,凑巧可以解决这个问题
或许和你的想法有点偏离,不过还是可以参考一下
#include <stdio.h>
#include <math.h>
int main()
{
int num,size;
printf("Enter a number >0:");
scanf("%d",&num);
size=log10(num)+1;
char s[size]; //C99允许array的size到执行期再决定,
array必须非全域或非static
sprintf(s,"%d",num); //int convert to c-string
printf("有%d个数字为%s\n",size,s);
return 0;
}
※ 引述《GoodmanYY (GOgoHigher)》之铭言:
: 开发平台(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的问号是我不知该如何下手
: 因为卡在不知道该如何得知会输入几个数字个数
: 问题可能对大家来说很浅,但是我想破头还是不知该如何实现
: 请各位提点一下谢谢。
作者: GoodmanYY (GOgoHigher)   2014-06-22 15:44:00
谢谢你热心地回答~小弟我先研究看看

Links booklink

Contact Us: admin [ a t ] ucptt.com