[問題] 將字串倒過來顯示的問題

看板C_and_CPP作者 (o9881102)時間14年前 (2010/04/12 23:33), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/1
#include <stdio.h> #include <stdlib.h> #define a 20 void reverse(char[]); int main(void) { char str[a]; printf("請輸入一列字串:"); gets(str); reverse(str); system("pause"); return 0; } void reverse(char str[a]) { char str2[a]; int i,last,size; puts(str); size=sizeof(str); last=size; for(i=0;i<size;i++) { str2[i]=str[last-1]; last--; } printf("反轉後的字串為:"); puts(str2); } 就像我的標題所說的 但是每次執行的結果 都永遠只會顯示前四個字元的字 而且後面還會出現奇怪的問號 感覺問題是出在不管我的str包含多長的字串 size=sizeof(str)出來的結果永遠都是4.... 不知道有沒有人可以救救我 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.199.221

04/12 23:40, , 1F
size=sizeof(str)=sizeof(char *)
04/12 23:40, 1F

04/12 23:40, , 2F
請改用 strlen
04/12 23:40, 2F

04/12 23:44, , 3F
終於跑出來了(淚) 謝謝您唷
04/12 23:44, 3F
文章代碼(AID): #1BmprMy7 (C_and_CPP)