[英]C: String Concatenation via Pointers
我正在學習C ..來自C#背景,我發現其中的大部分內容都非常容易過渡到..指針,但是事實證明這很麻煩。.我創建了一個小型測試應用程序(請參見下文),用於通過指針連接2個字符串。 我收到此錯誤:
error: invalid type argument of unary '*' (have 'int')
我該如何解決?
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];
}
//TODO: show concatenated string on console
}
ptr1[i]
已經取消引用數組。 也不需要使用*
。
[ 但是,即使您修復了該錯誤,您的代碼仍然會損壞; 您沒有考慮空終止符。 ]
the name of array as a point
ptr1 = string1; ptr1 point at the array string1,so ptr1[i] is just like string1[i]
ptr1 = string1;
ptr2 = string2;
ptr3 = string3;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.