如何在不打印的情况下从循环存储数组的输出

时间:2019-10-06 06:03:42

标签: c

我正在尝试解决网站上的编程问题。它说要检查单词是否是回文。如果是,则打印“是”,如果不是,则打印“否”。我已经快做完了,但是有一个问题。我无法存储数组的反向字符串的输出。

我尝试了很多方法来做。但我失败了

#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");
    }
}

我希望它将存储字符串值。

2 个答案:

答案 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];
}

它将神奇地起作用。