Re: [問題] 如何得知一串數字由幾個數字組成

看板C_and_CPP作者時間10年前 (2014/06/21 01:17), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
因為你的輸入剛好是整數 我打了一個方法,湊巧可以解決這個問題 或許和你的想法有點偏離,不過還是可以參考一下 #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的問號是我不知該如何下手 : 因為卡在不知道該如何得知會輸入幾個數字個數 : 問題可能對大家來說很淺,但是我想破頭還是不知該如何實現 : 請各位提點一下謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.221.199 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1403284658.A.8DB.html

06/22 15:44, , 1F
謝謝你熱心地回答~小弟我先研究看看
06/22 15:44, 1F
文章代碼(AID): #1Jf6ooZR (C_and_CPP)
文章代碼(AID): #1Jf6ooZR (C_and_CPP)