[問題] 帶入參數只回傳數字並排序

看板C_and_CPP作者 (剛好而已)時間14年前 (2011/08/18 17:59), 編輯推噓0(005)
留言5則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 問題(Question): 在執行main時直接帶入參數如 main a4b3c2d1 回傳數字的部分並由小到大排序 上列輸入結果要為 1234 目前是用string 來存 argv[1] 的值 用for迴圈+if判斷 把屬於數字的部分放到 char array中 for (int i=0; i<str.size(); i++) if (str[i] >= '0' && str[i] <= '9') { static int j = 0; arr[j] = str[i]; j++; } 之後再用bubble sort 把arr[] 排序 再用 for (x=0 ; x<sizeof(arr)/sizeof(arr[0]); x++) cout << arr[x]; 輸出結果 基本上功能是達到了但有很大的瑕疵 因為一開始array必須要給大小 我是給他arr[str.size()] 不過輸入字串不會剛好都是數字 所以array後面會留下很多空位 在sort的時候就會被移到1的前面 如 輸入 main aaa321 輸出 123 ^^^ 有3個字母所以多了3個空格 請問要如何修改才能得到 前面不會有空格的結果? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.0.34.42 ※ 編輯: scott90213 來自: 123.0.34.42 (08/18 18:23)

08/18 18:24, , 1F
何不把j宣告在外面 然後泡沫排序只排到j為止
08/18 18:24, 1F

08/18 18:56, , 2F
你把arr初始為'\0'...
08/18 18:56, 2F

08/18 19:43, , 3F
http://codepad.org/Yta9HG0G <--大概是這樣,是自己需求
08/18 19:43, 3F

08/18 19:43, , 4F
去改
08/18 19:43, 4F

08/19 21:44, , 5F
感謝各位
08/19 21:44, 5F
文章代碼(AID): #1EJE9vc8 (C_and_CPP)