printf( "%s Buffer[k]" ,buffer[k],k);仅打印缓冲区>而不打印%s



我正在制作一个益智游戏,所以当用户找到单词时,我想把它写成大写。所以我写了这个循环,但它不起作用。程序未进入IF语句。我试着在第二个循环中打印printf("%s Buffer[k]",buffer[k],k);(I(以找到问题,但我没有看到单词,程序只打印了"Buffer[0]\n Buffer[1]\n…………..Buffer[9]"。
但当我在第一个循环中输出这些printf("%s Buffer[k]",buffer[k],k);时,它打印正确。我该怎么解决这个问题
我的第二个问题是:
为什么不进入IF语句?

代码1:

for(int k=0; k<MAX_WORD_NUMBER; k++){
for(int i=0; i<MAX_WORD_LENGTH; i++){
printf("%s Buffer[k]",buffer[k],k);
if(strcmp(buffer[k],word) == 0){                    
buffer[k][i] = word[i] - 32;
}
else{
break;
}
}
}       

输出:

Buffer[0]
Buffer[1]
.
.
.
Buffer[8]
Buffer[9]

代码2:

for(int k=0; k<MAX_WORD_NUMBER; k++){
printf("%s Buffer[k]",buffer[k],k);
for(int i=0; i<MAX_WORD_LENGTH; i++){
if(strcmp(buffer[k],word) == 0){                    
buffer[k][i] = word[i] - 32;
}
else{
break;
}
}
}       

输出:

wall Buffer[0]
evasive Buffer[1]
. 
.
.
war Buffer[9]

[SOLVED]
我已将MAX_WORD_LENGTH更改为strlen(WORD(和strncmp,而不是strcmp