C의 함수를 사용하여 문자열이 회문인지 확인

비탄 바삭

사용자가 입력 한 문자열이 회문인지 확인하고 싶습니다. 함수를 사용하지 않고이 문제를 수행했지만이 문제에 함수를 사용할 때 항상 동일한 결과를 얻습니다.

입력 한 문자열은 회문이 아닙니다!

사용자가 입력 한 문자열이 회문이라도 동일한 출력을 얻습니다. 내 코드는 다음과 같습니다.

#include <stdio.h>
#include <string.h>

void reverse(char [],int);

int main() {
    char a[100];int len, i = 0;

    printf("Please enter the string to check: \n");
    fgets(a,100,stdin);

    //Loop to replace the '\n' inserted at the end of string due to fgets() with '\0'
    for (int i = 0; i < strlen(a); ++i)
    {
        if (a[i] == '\n')
        {
            a[i] = '\0';
        }
    }

    len = strlen(a);

    reverse(a,len);

    return 0;
}

void reverse(char b[100], int n) {
    char c[100];int k=0;

    //Read characters from b[] from the end and store them into c[]
    for (int i = n-1; i >= 0; i--)
    {
        c[k] +=b[i];
        k++;
    }
    c[k] = '\0';

    //Check if the reversed string c[] and the actual string b[] are equal
    if(strcmp(c,b) == 0)
        printf("The Entered String Is Palindrome!\n");
    else
        printf("The Entered String Is Not Palindrome!\n");
}

reverse () 함수의 코드는 함수없이 동일한 문제를 해결하는 데 사용한 코드와 동일합니다 (그리고 해당 프로그램은 완벽하게 작동 함). 그러나 여전히 올바른 출력을 제공하지 않습니다. 내가 여기서 뭘 잘못하고 있니?

편집 : 좋아, 그래서 c[k] += b[i]사용자 제안에 따라 제거했으며 이제 완벽하게 작동합니다. 하지만 여전히 이해가되지 않습니다. 내 말은 같은 프로그램에서 같은 줄을 사용했다는 의미인데, 유일한 차이점은 거기에서 함수 개념을 사용하지 않았고 완벽하게 잘 작동했다는 것입니다. 다음은 코드입니다.

#include <stdio.h>
#include <string.h>

int main() {
    char a[100], b[100];
    int k=0;

    printf("Please enter the string: \n");
    fgets(a,100,stdin);

    //To replace the '\n' at the end of the string inserted by fgets()
    for (int i = 0; i < strlen(a); ++i)
    {
        if(a[i] == '\n')
            a[i] = '\0';
    }

    for (int i = strlen(a)-1; i >=0 ; i--)
    {
        b[k] += a[i];
        k++;
    }

    if (strcmp(a,b) == 0)
    {
        printf("The entered string is palindrome!\n");
    }
    else
        printf("The entered string is not palindrome! \n");

    return 0;
}

내가 알지 못하는 개념이 있습니까? 그렇다면 저를 깨달으십시오.

MikeCAT

자동 저장 기간이있는 초기화되지 않은 변수의 값을 사용하여 정의되지 않은 동작호출했습니다 .

대신에 추가 c[k] +=b[i];에서 불과 할당 값 b으로 c[k] = b[i];.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Java를 사용하여 문자열의 이웃 확인

분류에서Dev

Python : 문자열이 회문인지 확인하는 재귀 함수

분류에서Dev

isEmpty ()를 사용하여 문자열이 null인지 확인

분류에서Dev

문자열이 순열의 회문인지 확인하십시오.

분류에서Dev

문자열이 유효한지 확인하는 함수 정의

분류에서Dev

두 문자열이 회문인지 확인-대소 문자를 무시하고 사용합니까?

분류에서Dev

isalpha를 사용하여 C ++의 문자열에 특수 문자가 있는지 어떻게 확인합니까?

분류에서Dev

루프를 사용하여 문자열의 모든 문자가 대문자인지 확인하는 방법

분류에서Dev

포인터를 사용하여 C의 함수에서 argv 문자열 변경

분류에서Dev

문자열의 공개 키를 사용하여 JWT 확인

분류에서Dev

JavaScript에서 Regex를 사용하여 배열의 항목이 문자열에 있는지 확인

분류에서Dev

숫자가 회문인지 확인하는 함수 만들기

분류에서Dev

유형 검사를 사용하여 문자열이 특정 값인지 확인

분류에서Dev

파이썬에서 재귀를 사용하여 문자열이 다른 문자열의 후속인지 확인하는 방법은 무엇입니까?

분류에서Dev

문자열에 배치 파일의 하위 문자열이 포함되어 있는지 확인하기 위해 하위 문자열을 사용하는 문제

분류에서Dev

주어진 문자열이 C에서 회문인지 확인하는 효과적인 방법

분류에서Dev

문자열이 회문인지 확인하는 방법

분류에서Dev

Haskell의 다른 문자열 내에 하위 문자열이 있는지 확인하는 함수

분류에서Dev

문자열 함수를 사용하여 지운 배열 인덱스의 이름을 표시하는 C ++ 프로그램?

분류에서Dev

열 인덱스의 벡터를 사용하여 인수를 문자열로 변환하는 함수 생성

분류에서Dev

linq를 사용하여 두 문자열 목록 사이에 공통 문자열이 있는지 확인

분류에서Dev

`query` 메소드를 사용하여 열의 요소에 특정 문자열이 포함되어 있는지 확인하는 방법

분류에서Dev

TypeScript를 사용하여 문자열 리터럴 통합의 모든 유형이 한 번 이상 사용되는지 확인할 수 있습니까?

분류에서Dev

linq를 사용하여 db에 문자열이 있는지 확인

분류에서Dev

스칼라의 배열 인수를 사용하여 문자열 형식 지정

분류에서Dev

인덱스를 사용하여 문자열의 문자 반복

분류에서Dev

pandas 시리즈의 각 행에 apply를 사용하여 목록의 문자열이 포함되어 있는지 확인하십시오.

분류에서Dev

단일 연결 목록이 회문인지 여부 확인 C

분류에서Dev

문자열 배열의 차이를 확인하는 방법

Related 관련 기사

  1. 1

    Java를 사용하여 문자열의 이웃 확인

  2. 2

    Python : 문자열이 회문인지 확인하는 재귀 함수

  3. 3

    isEmpty ()를 사용하여 문자열이 null인지 확인

  4. 4

    문자열이 순열의 회문인지 확인하십시오.

  5. 5

    문자열이 유효한지 확인하는 함수 정의

  6. 6

    두 문자열이 회문인지 확인-대소 문자를 무시하고 사용합니까?

  7. 7

    isalpha를 사용하여 C ++의 문자열에 특수 문자가 있는지 어떻게 확인합니까?

  8. 8

    루프를 사용하여 문자열의 모든 문자가 대문자인지 확인하는 방법

  9. 9

    포인터를 사용하여 C의 함수에서 argv 문자열 변경

  10. 10

    문자열의 공개 키를 사용하여 JWT 확인

  11. 11

    JavaScript에서 Regex를 사용하여 배열의 항목이 문자열에 있는지 확인

  12. 12

    숫자가 회문인지 확인하는 함수 만들기

  13. 13

    유형 검사를 사용하여 문자열이 특정 값인지 확인

  14. 14

    파이썬에서 재귀를 사용하여 문자열이 다른 문자열의 후속인지 확인하는 방법은 무엇입니까?

  15. 15

    문자열에 배치 파일의 하위 문자열이 포함되어 있는지 확인하기 위해 하위 문자열을 사용하는 문제

  16. 16

    주어진 문자열이 C에서 회문인지 확인하는 효과적인 방법

  17. 17

    문자열이 회문인지 확인하는 방법

  18. 18

    Haskell의 다른 문자열 내에 하위 문자열이 있는지 확인하는 함수

  19. 19

    문자열 함수를 사용하여 지운 배열 인덱스의 이름을 표시하는 C ++ 프로그램?

  20. 20

    열 인덱스의 벡터를 사용하여 인수를 문자열로 변환하는 함수 생성

  21. 21

    linq를 사용하여 두 문자열 목록 사이에 공통 문자열이 있는지 확인

  22. 22

    `query` 메소드를 사용하여 열의 요소에 특정 문자열이 포함되어 있는지 확인하는 방법

  23. 23

    TypeScript를 사용하여 문자열 리터럴 통합의 모든 유형이 한 번 이상 사용되는지 확인할 수 있습니까?

  24. 24

    linq를 사용하여 db에 문자열이 있는지 확인

  25. 25

    스칼라의 배열 인수를 사용하여 문자열 형식 지정

  26. 26

    인덱스를 사용하여 문자열의 문자 반복

  27. 27

    pandas 시리즈의 각 행에 apply를 사용하여 목록의 문자열이 포함되어 있는지 확인하십시오.

  28. 28

    단일 연결 목록이 회문인지 여부 확인 C

  29. 29

    문자열 배열의 차이를 확인하는 방법

뜨겁다태그

보관