-3
我想編寫一個程序,獲取字符串'ch1'的前半部分並將其放入字符串'ch3'中,然後獲取另一個字符串'ch2'的前半部分並將其連接'CH3' 「把在CH 3的端部」,但是當我執行它,它給我要CH3怪異輸出.. 例如:使用strncpy和strncat的奇怪輸出
ch1 ="123"
ch2 ="azertyuiop"
結果: CH3 =「1 < 3rdweirdletter> azert 「
這是我的代碼:
int main()
{
char ch1[200],ch2[200],ch3[200];
puts("give 'ch1' ");
gets(ch1);
puts("give 'ch2' ");
gets(ch2);
strncpy(ch3,ch1, strlen(ch1)/2);
strncat(ch3,ch2, strlen(ch2)/2);
printf("a half \"%s\" + a half \"%s\" gives \"%s\"",ch1,ch2,ch3);
return 0;
}
如果有人幫助我,我將不勝感激。 感謝
'man strncpy':* [...]警告:如果在src的前n個字節中沒有空字節,則 放置在dest中的字符串不會以null結尾* – EOF
請您解釋一下更多.. 對不起,我對此感興趣 –
請勿使用'gets':http://stackoverflow.com/q/1694036/4996248 –