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

看板C_and_CPP (C/C++)作者 (GOgoHigher)時間11年前 (2014/06/20 00:14), 11年前編輯推噓3(3025)
留言28則, 7人參與, 最新討論串1/3 (看更多)
開發平台(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.45.94.24 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1403194467.A.253.html ※ 編輯: GoodmanYY (114.45.94.24), 06/20/2014 00:15:39

06/20 00:38, , 1F
第一個問號那邊 就想最長輸入有多長就好了
06/20 00:38, 1F

06/20 10:35, , 2F
請問有方法可以根據使用者輸入幾個數字而改變陣列大小
06/20 10:35, 2F

06/20 10:35, , 3F
的方法嗎? 而不預先配置字元陣列大小
06/20 10:35, 3F

06/20 11:40, , 4F
現在我要開一條彈性馬路,根據今天有多少車通過改變大小
06/20 11:40, 4F

06/20 11:41, , 5F
請問如何辦到
06/20 11:41, 5F

06/20 11:41, , 6F
不然改一下 現在我想開一部彈性公車 根據今天有多少乘客
06/20 11:41, 6F

06/20 11:42, , 7F
改變車的大小 請問如何辦到
06/20 11:42, 7F

06/20 11:52, , 8F
std::vector std::string std::stream
06/20 11:52, 8F

06/20 13:03, , 9F
M大,就是這意思,請問可能辦到嗎?
06/20 13:03, 9F

06/20 13:04, , 10F
b大,是要用到C++的物件才可以實現嗎?
06/20 13:04, 10F

06/20 14:26, , 11F
可能, 但你必須要自己處理使用者輸入
06/20 14:26, 11F

06/20 14:27, , 12F
(以彈性公車的比喻來說, 你得管理一下上車的人, 這樣一來當
06/20 14:27, 12F

06/20 14:27, , 13F
車子不夠大時你才能夠加大公車) 8F 推的那些物件把這些事
06/20 14:27, 13F

06/20 14:28, , 14F
都包起來了 (找了別人幫忙管理彈性公車)
06/20 14:28, 14F

06/20 14:49, , 15F
用C的話 GLib算是個不錯的STL在C上的替代品
06/20 14:49, 15F

06/20 18:03, , 16F
我是覺得很麻煩而且意義不大啦 現在記憶體又不是只有4K
06/20 18:03, 16F

06/20 18:03, , 17F
你搞linked list、搞realloc等等effort遠超過我割一塊
06/20 18:03, 17F

06/20 18:04, , 18F
buffer 就可以讓user打到地老天荒都打不滿
06/20 18:04, 18F

06/20 18:04, , 19F
頂多注意一下overflow以免遭人利用 方法也很簡單
06/20 18:04, 19F

06/20 18:05, , 20F
以前有人想跟你一樣的事情 他還寫出分成兩個arm
06/20 18:05, 20F

06/20 18:06, , 21F
realloc的程式 也在本板 算他有想法 但是你知道realloc
06/20 18:06, 21F

06/20 18:06, , 22F
裡面OS耗費多少effort就不會想要這樣做了
06/20 18:06, 22F

06/20 18:08, , 23F
Premature optimization is the origin of all sins
06/20 18:08, 23F

06/20 20:16, , 24F
囧...看起來是個浩大的工程
06/20 20:16, 24F

06/20 20:17, , 25F
我以為只是在C語言加個指令這樣,看來是我想太簡單了
06/20 20:17, 25F

06/20 20:17, , 26F
謝謝大家熱心地回答
06/20 20:17, 26F

07/30 23:56, , 27F
你先想真實世界這個問題如何解,程式大概就是如何解
07/30 23:56, 27F

07/30 23:57, , 28F
寫程式是為了解決真實世界遇到的問題
07/30 23:57, 28F
文章代碼(AID): #1JemnZ9J (C_and_CPP)
文章代碼(AID): #1JemnZ9J (C_and_CPP)