Я хочу прочитать inputtext.txt построчно, изменить порядок слов в каждой строке и распечатать их (input: hello world, output: world hello). С этим кодом мой вывод все испорчен, и я получаю ошибку времени выполнения № 2, говорящую, что стек вокруг моего "строки" массива поврежден. Я пытался сбросить строки на нуль после каждой итерации цикла while, но все равно получаю ту же ошибку. Кто-нибудь есть какие-либо предложения, чтобы избавиться от ошибки времени выполнения или помочь коду работать более гладко?
int main() {
FILE *inp,*outp; //file input and output
int i,wordcount; //define counter variables
int k = 0,j=0;
char string[200]; //define string to scan sentence into
char words[20][20]; //2D string for each word in the sentence
inp = fopen("inputtext.txt", "r");
outp = fopen("output.txt", "w");
if (inp == NULL) {
printf("File not found.\n");
}
else {
while (!feof(inp)) {
fgets(string, 1000, inp);
printf("GOT SENTENCE\n");
for (i = 0; string[i] != '\0'; i++) {
if (string[i] == ' ') {
words[k][j] = '\0';
k++;
j = 0;
}
else
{
words[k][j] = string[i];
j++;
}
}
words[k][j] = '\0';
wordcount = k;
for (i = wordcount; i >= 0; i--) {
printf("%s ", words[i]);
}
printf("\n\n");
}
}
return 0;
}