我已经尝试调试此代码,但是即使我在while循环中循环遍历字符串,它看起来也不像在循环任何东西。调用函数后,目标数组不变。

void stringConcatenate(char * destination, char * source)
{
int index1 = 0; //for cycling subscripts
int index2 = 0;

while (destination[index1] != '\0') //cycle to end of first string
{
    index1++;
}
index1++;   //to get to null character
while (source[index2] != '\0')  //cycle through second string appending along the way
{
    destination[index1] = source[index2];
    index1++;
    index2++;
}
destination[index1] = '\0'; //append null point


}

最佳答案

在第一个index1语句之后递增while的行不应在那里。

index1++; //to get to null character <-- incorrect.


index已经指向终止符。通过在此处增加它,最终将字符串追加到终止符后面一个字符。

10-08 11:53