[問題] strncpy的問題

看板C_and_CPP (C/C++)作者 (小宗宗19)時間14年前 (2012/03/24 00:02), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
#include<stdio.h> #include<stdlib.h> #include<string.h> int main(){ char *msg = "Saab 93"; char dest[30] = "SAAB 95 Aero"; strcpy(dest, msg); printf("\n My car is....%s\n", dest); strncpy(dest, msg,4); printf("\n My car is....%s\n", dest); system("pause"); return 0; } 小弟我是照著書本練習打的 以strncpy來說, strncpy(dest, msg,4); 應該是指複製4個字串, 執行後結果如下: My car is....Saab 93 My car is....Saab 93 第2式是不是怪怪的??? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.194.56

03/24 00:03, , 1F
沒有複製結束字元,你要自己加上去
03/24 00:03, 1F

03/24 00:08, , 2F
strncpy 就只複製你指定的字元數 不多不少
03/24 00:08, 2F

03/24 00:09, , 3F
所以結束字元也不會幫你加上去
03/24 00:09, 3F
文章代碼(AID): #1FR9wlGN (C_and_CPP)
文章代碼(AID): #1FR9wlGN (C_and_CPP)