作者tohru (PPP)
看板C_and_CPP
标题Re: [问题] 字串插入字串的问题
时间Thu May 7 15:09:02 2009
谢谢版友的回信说明
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
1F:推 ledia:我记得 strncpy 不会补 zero-end, 这个要比较小心 05/07 20:47
2F:推 stonehomelaa:没错 strncpy不会补\0 05/07 21:05