[問題] C語言 有關字串..

看板C_and_CPP (C/C++)作者 (狂鬼)時間16年前 (2009/09/09 22:56), 編輯推噓4(409)
留言13則, 4人參與, 最新討論串1/1
printf("IM[%d][%d] = %c \n",j,k,IM[j][k]); 顯示: IM[0][0] = IM[0][1] = a IM[0][2] = d IM[0][3] = d IM[0][4] = IM[0][5] = r IM[0][6] = 1 IM[0][7] = IM[0][8] = IM[0][9] = r IM[0][10] = 2 IM[0][11] = IM[0][12] = IM[0][13] = r IM[0][14] = 3 IM[0][15] = printf("IM[0] = %s \n",IM[0]); 顯示: IM[0] = add r1 照理說應該顯示為 IM[0] = add r1 r2 r3 為什麼r2 r3會沒有顯示出來呢... debug半天de不出來.. 請高手解惑...Orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.146.83.72 ※ 編輯: telesky 來自: 122.146.83.72 (09/09 22:57)

09/09 23:05, , 1F
....你r1後面是不是有\0 .. char*字串到\0就是結尾了
09/09 23:05, 1F

09/09 23:18, , 2F
我沒有設\0耶 可以問什麼情況下 他會產生\0嗎?
09/09 23:18, 2F

09/09 23:20, , 3F
如果原本的字元陣列沒有初始化 裡面的值就是undefined
09/09 23:20, 3F

09/09 23:20, , 4F
undefined就是什麼都有可能,也有可能其中有\0
09/09 23:20, 4F

09/09 23:20, , 5F
嗯 已解決...3q
09/09 23:20, 5F

09/09 23:20, , 6F
你只在add r1 r2 r3這些字元的位置設值 其他地方還是
09/09 23:20, 6F

09/09 23:20, , 7F
undefined
09/09 23:20, 7F

09/09 23:34, , 8F
add r1...這些字, 每個char在assign時有記得加''吧@_@"
09/09 23:34, 8F

09/09 23:35, , 9F
另外, 這個例子看來, 空著的地方都要補' '放空白字元.
09/09 23:35, 9F

09/09 23:36, , 10F
15的位置也應該自己加上'\0'; 就像3F說的, 寫程式不應該
09/09 23:36, 10F

09/09 23:36, , 11F
留下undefined value.
09/09 23:36, 11F

09/10 00:00, , 12F
嗯 我是設' ' 空白字元解決問題的
09/10 00:00, 12F

09/10 10:05, , 13F
IM[0][15]記得要填'\0'不然printf會一直讀到'\0'為止
09/10 10:05, 13F
文章代碼(AID): #1Afy8ZX9 (C_and_CPP)
文章代碼(AID): #1Afy8ZX9 (C_and_CPP)