[問題] 請問一個關於字串觀念的問題
char a[100]="abcdef";
char b[100];
現在我把a填到b裡面
strncpy(b, a, strlen(a));
printf("%s", b);
出現的是
abcdef亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼亂碼
如果我把長度+1
strncpy(b, a, strlen(a)+1);
printf("%s", b);
因為有把結束字元'\0'囊括進來
所以b的內容是
abcdef
可是今天我b把設初始
char b[100]= "";
如果我猜的沒錯
b的內容應該是"\0"
今天再把a填進b裡
strncpy(b, a, strlen(a));
這次我並沒有讓長度+1
也就是說a的結束字元'\0'不會被囊括進來
問題是印出b的內容
卻還是abcdef 沒有亂碼
為什麼?
不是把a填進b的時候
就把b[0]的'\0'也覆蓋掉了嗎?
為何b的內容並沒有出現亂碼呢?
--
→
05/22 17:28,
05/22 17:28
→
05/22 17:29,
05/22 17:29
→
05/22 17:29,
05/22 17:29
噓
05/22 17:29,
05/22 17:29
→
05/22 17:29,
05/22 17:29
推
05/22 17:29,
05/22 17:29
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.134.41.30
推
05/23 13:43, , 1F
05/23 13:43, 1F
推
05/23 14:16, , 2F
05/23 14:16, 2F
推
05/23 14:38, , 3F
05/23 14:38, 3F
→
05/23 14:39, , 4F
05/23 14:39, 4F
推
05/23 14:48, , 5F
05/23 14:48, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章