看板 C_and_CPP 關於我們 聯絡資訊
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 我有兩個字串分別是:   const char *input = "12pp";   const char *output; 經過了一些運算後,我希望讓output的內容也為"pp" 不太知道如何著手,請板上前輩們給點意見 希望得到的正確結果: input="12pp"時 output="pp" 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) gcc/linux 有問題的code: (請善用置底文標色功能) 補充說明: 初學C語言,這個步驟我卡關卡很久,希望大家能給點意見或關鍵字提示 非常感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.143.250
devilarise:如果你願意拿掉const就很簡單@@, 不拿掉, ㄜ~純C不熟QQ 12/02 18:48
cfleu:別讓我QQ阿...y 12/02 18:49
twotwoone:output = input; 12/02 18:54
snoopy0907:const char *output=&input不就好了?還是我會錯意 12/02 18:57
抱歉樓上各位前輩!題意不清,在此先與大家鞠躬道歉! 我把我的code貼出來好了 int main(int argc, char *argv[]) { const char *input = "t3454y542g35grt24"; const char *output = NULL; int i, j=0; for (i=0; i<strlen(input); i++) { if(isalpha(input[i])) { const char *output[j]=&input[i];,,,,有問題的是這行 j++; 該如何一個字一個字回填呢? } } } 也就是說我希望程式執行完以後,output="tyggrt" ※ 編輯: cfleu 來自: 60.251.143.250 (12/02 19:03) ※ 編輯: cfleu 來自: 60.251.143.250 (12/02 19:05)
twotwoone:整個觀念都錯了,從頭開始看吧,沒學到const前先別用 12/02 19:07
james732:我想請問你的 output 寫 const 的理由...? 12/02 19:07
>//<大大好眼力! 因為後面有個function要用到,而他的格式是 function(const char, int.....) 而我想再輸入以前,對字元先做點前處理,才發生了這場烏龍,希望大家能給點方向! 感謝 ※ 編輯: cfleu 來自: 60.251.143.250 (12/02 19:10)
james732:第二個問題,請問你 input 到 output 的關係? 12/02 19:13
james732:單純的只是把數字去掉嗎? 12/02 19:13
cfleu:是的! 12/02 19:13
Minilogo:一開始output給NULL之後就不能再改了吧 12/02 19:16
twotwoone:const修飾的是*output,所以還是能改output的指標值 12/02 19:17
cfleu:>//<貼錯了,總之,我把他拿掉了。。。 12/02 19:18