我正在學習C ..來自C#背景我發現它大部分非常容易轉換爲..指針但是證明相當麻煩..我創建了一個小測試應用程序(請參閱下面)通過指針連接2個字符串。我得到這個錯誤:C:字符串通過指針級聯
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
}
您應該在這裏使用'scanf(「%20s」,string1)''。 – 2012-07-15 23:39:27
你的第二個循環是不正確的,你需要從第二個字符串的開頭開始複製(但仍然追加到最後一個字符串的末尾)。 – Neil 2012-07-15 23:50:08