首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回文字符串(C)

回文字符串(C)
EN

Stack Overflow用户
提问于 2019-09-17 10:09:25
回答 1查看 137关注 0票数 1

我试图通过使用strlen() & strcmp()字符串函数来解决C中的这个回文字符串问题。我的想法是将字符串复制到另一个新字符串,然后比较这两个字符串。

对于复制,我使用了For循环。

我想问题就在这里。在大多数情况下,我复制的字符串中有2-3个额外字符.我在挠我的耳朵一段时间。这应该是一个简单的问题,但由于我刚开始解决问题,这需要很多时间。

代码语言:javascript
复制
    #include<stdio.h>
    #include<string.h>

    int main()
    {
        char my_string1[100], my_string2[100];

        int i=0, c;
        int j;

        scanf("%s",&my_string1);

        c= strlen(my_string1);
        j=c;

        for( i=0; i<c; i++){
                j=j-1;
                my_string2[i]=my_string1[j];
        }

        printf("\n\nString1:  ");
        puts(my_string1);
        printf("String1's length:  ");
        printf("%d\n\n",c);
        printf("String12:  ");
        puts(my_string2);
        printf("String2's length:  ");
        printf("%d\n",strlen(my_string2));

        if(strcmp(my_string1,my_string2)==0)
        {
            printf("\n\nYES");
        }
        else
            printf("\n\nNO");

    }

样本输出

代码语言:javascript
复制
aba


String1:  aba
String1's length:  3

String12:  abaO
String2's length:  5


NO
代码语言:javascript
复制
String1:  abcdse
String1's length:  6

String12:  esdcba
String2's length:  6


NO
EN

回答 1

Stack Overflow用户

发布于 2019-09-17 10:18:10

你应该试试这样的方法:

代码语言:javascript
复制
#include<stdio.h>
#include<string.h>
#include <stdbool.h>


int main()
{
    char my_string1[100];

    int i=0, c;

    scanf("%s",my_string1);

    c= strlen(my_string1);

    bool equal = true;
    for( i=0; i<c/2; i++) {  // compare first half and the second half of the string
        if( my_string1[i] != my_string1[c-i-1] ) {
             equal = false;
             break;
        }
    }

    printf("\n\nString1:  ");
    puts(my_string1);
    printf("String1's length:  ");
    printf("%d\n\n",c);

    if( equal ) {
        printf("\n\nYES");
    } else {
        printf("\n\nNO");
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57971999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档