[問題] c關於回傳字串的問題

看板C_and_CPP (C/C++)作者 (今年要衝一發)時間16年前 (2009/03/22 20:37), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
請大家幫幫我 我弄了一個晚上還搞不太清楚... 因為我之前是學c++ 對c的字串操作概念很差 怎麼弄就是弄不來... 是這樣的 假設我有一個funtion 要把一個十進位字串轉成二進位回傳 如下 char *toBinary(char *input) //input必介於0~7 不能用int 因有別的要求 { int inputNumber = atoi(input); char temp[4]; switch (inputNumber) { case 0: strcpy(temp, "000"); break; case 1: strcpy(temp, "001"); break; case 2: strcpy(temp, "010"); break; case 3: strcpy(temp, "011"); break; case 4: strcpy(temp, "100"); break; case 5: strcpy(temp, "101"); break; case 6: strcpy(temp, "110"); break; case 7: strcpy(temp, "111"); break; default: return NULL; } return temp; } 我知道這樣會有問題 因為temp會在function結束後 記憶體被釋放 所以會傳回垃圾 但是如果改成temp* 這樣strcpy會有問題對吧 因為temp指向的記憶體沒有初始值 那到底這種狀況 該怎麼寫呢 要是是c++的話 直接用string就可以解決了... 感謝大家 謝謝了!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.235 ※ 編輯: coolbeela 來自: 140.112.4.235 (03/22 20:37)

03/22 20:42, , 1F
1. 把輸出當作參數傳進來 2. 用 malloc (記得要free)
03/22 20:42, 1F

03/22 20:43, , 2F
一般的設計是傳入目的參數
03/22 20:43, 2F

03/22 20:43, , 3F
char * strxxx( char * src, const char * dst );
03/22 20:43, 3F
文章代碼(AID): #19nZ42uh (C_and_CPP)
文章代碼(AID): #19nZ42uh (C_and_CPP)