Re: [問題] 字串插入字串的問題

看板C_and_CPP (C/C++)作者 (PPP)時間16年前 (2009/05/07 15:09), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
謝謝版友的回信說明 bug是因為我沒有清空記憶體裡的值 以下為更改過的程式碼 #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char string1[10], string2[10], string3[10]; char dest_string[30]=""; // 避免記憶體內有殘留的值,所以必須先必須先清空字串 int i, j, str1_length, str2_length; printf("輸入外部字串str1 => "); scanf("%s", &string1); printf("輸入內部字串str2 => "); scanf("%s", &string2); str1_length=strlen(string1); strncpy(dest_string, string1, str1_length/2); strcat(dest_string, string2); for(i=str1_length/2,j=0;;i++,j++) { string3[j]=string1[i]; if(string3[j]=='\0') break; } strcat(dest_string, string3); printf("合併字串(str2插入str1字串中央) => %s\n", dest_string); system("pause"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.243.66

05/07 20:47, , 1F
我記得 strncpy 不會補 zero-end, 這個要比較小心
05/07 20:47, 1F

05/07 21:05, , 2F
沒錯 strncpy不會補\0
05/07 21:05, 2F
文章代碼(AID): #1A0eaFW3 (C_and_CPP)
文章代碼(AID): #1A0eaFW3 (C_and_CPP)