我正在尝试解决网站上的编程问题。它说要检查单词是否是回文。如果是,则打印“是”,如果不是,则打印“否”。我已经快做完了,但是有一个问题。我无法存储数组的反向字符串的输出。
我尝试了很多方法来做。但我失败了
#include<stdio.h>
#include<string.h>
int main(){
int i,len;
char mainword[100], reverseword[100];
scanf("%s",mainword);
len = strlen(mainword);
strcpy(reverseword,mainword);
for(i=len; i>=0; i--){
printf("%c",reverseword[i]);
// I just need here to save the output without printing it. So, that later I can compare it.
}
if(strcmp(reverseword,mainword)==0){
printf("\nYes");
}
else{
printf("\nNo");
}
}
我希望它将存储字符串值。
答案 0 :(得分:1)
您可以尝试以下操作:
#include<stdio.h>
#include<string.h>
int main(){
int i,len,j=0;
char mainword[100], reverseword[100];
scanf("%s",mainword);
len = strlen(mainword);
for(i=len; i>=0; i--){
reverseword[j] = mainword[i-1];
j++;
}
reverseword[j] = '\0';
if(strcmp(reverseword,mainword)==0){
printf("\nYes");
}
else{
printf("\nNo");
}
}
答案 1 :(得分:0)
代替此:
for(i=len; i>=0; i--){
printf("%c",reverseword[i]);
// I just need here to save the output without printing it. So, that later I can compare it.
}
您最好只使用这个:
for( i=0; i<len; i++) {
reverseword[i] = mainword[len-i-1];
}
它将神奇地起作用。