아래 질문 글을 올린 뒤, 해결을 위해 다른 코드를 작성했습니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
int main()
{
bool ok = true;
char text[31]; // 입력값을 받을 배열
char* cat = malloc(sizeof(char) * 31); // 포인터 cat에 동적메모리 할당
memset(cat, 0, sizeof(char) * 31); // cat 초기화
scanf("%[^\n]s", text); // 입력값
char* ptr = strtok(text, " "); // " " 기준으로 문자열 자르기
char* sArr[31] = { NULL, }; // 문자열 저장할 배열 지정
int i = 0;
int length_sArr; // sArr의 길이
int length_cat; // cat의 길이
while (ptr != NULL) // 자른 문자열을 배열에 저장
{
sArr[i] = ptr;
i++;
ptr = strtok(NULL, " ");
}
length_sArr = strlen(sArr);
for (i = 0; i < length_sArr; i++) // 배열에 저장된 문자열을 붙이기
{
strcat(cat, sArr[i]);
}
length_cat = strlen(cat);
for (i = 0; i < length_cat / 2; i++) // 회문 점검
{
if (cat[i] == cat[length_cat - 1 - i])
{
ok = true;
}
else
{
ok = false;
break;
}
}
printf("%d", ok);
free(cat);
return 0;
}
visual studio 에서는 작동하는데,
심사문제에 제출했을 때는 작동하지 않아서
아래글과 더불어 이 코드도 확인부탁드려도 될까요.
배열 접근에 문제가 발생했습니다. 결과가 출력되지 않습니다.
테스트한 입력 값은 cac입니다. 화면에 보입니다.
온라인 심사에서도 당연히 출력 결과가 없고, 오류입니다.
배열 접근을 잘 해야 합니다.
포럼 오른쪽 상단에서 검색하면 이전 질문과 답변을 참조할 수 있습니다.