以下代碼僅連接第一個字符串並忽略第二個..從我收集的內容來看,它與Null終止的字符串有關。由於我是C新手,這對我來說是一個新概念。有人可以幫助下面的代碼工作?這對我的理解會有很大的幫助。C:字符串Concatenation:空終止字符串
void concatTest();
int main()
{
concatTest();
system("PAUSE");
return 0;
}
void concatTest()
{
char string1[20], string2[20], string3[40];
char *ptr1, *ptr2, *ptr3;
ptr1 = &string1[0];
ptr2 = &string2[0];
ptr3 = &string3[0];
int i;
printf("You need to enter 2 strings.. each of which is no more than 20 chars in length: \n");
printf("Enter string #1: \n");
scanf("%s", string1);
printf("Enter string #2: \n");
scanf("%s", string2);
int len1 = strlen(string1);
int len2 = strlen(string2);
for (i = 0; i < len1; i++)
{
ptr3[i] = ptr1[i];
}
for (i = len1; i < len1 + len2; i++)
{
ptr3[i] = ptr2[i];
}
printf("%s\n", string3);
}
非常好。謝謝格雷格..我會接受你的答案,只要StackOverflow讓我(約7分鐘).. – Matt 2012-07-16 00:02:22
我有點喜歡索引開始在ptr3點像原始代碼 - 認爲它更清晰。只需要從正確的位置複製。 – Hogan 2012-07-16 00:58:59