在边函数上用字符串填充数组。为什么打印乱码?

时间:2016-09-03 16:34:39

标签: c arrays

我找不到有关此事的帮助。我发现的大多数问题都与未使用'\ 0'关闭数组有关,但事实并非如此。

void main() {
    char text[1000];
    int index=0;
    loadText(text,&index);
    printf("\nThe text is:\n %s",text);
    getch();
}

void loadText(char* text,int* index){
    printf("Insert the text: \n");
    while((*index<1000) && (text[*index]=getchar())!=EOF) {
        *index++;
    }
    text[*index]='\0';
}

当我打印数组时,它会显示随机字符。

另一方面,这是一个测试,我们被迫将函数编写为:

void  loadText(char*, int*)

1 个答案:

答案 0 :(得分:2)

*index++;

不会增加指针中的值。相反,它获取值(*index),然后递增指针本身(index=index+1)

待办事项

(*index)++;