게시판
검색 결과: 118
47.5 공백이 포함된 회문 판별 질문 드립니다.
47.5를 풀어보다가 너무 풀리지 않아 인터넷에서 해답을 얻었고, 문제를 풀었지만 아직 잘 이해가 되지 않는 부분이 있어서 이렇게 올립니다.
밑 파일에서
while (ptr != NULL) {
strcpy(copy, ptr);
strcat(newWord, copy);
ptr = strtok(NULL, " ");
}
이 부분이 설명을 부탁 드립니다.
무한반복으로 프로그램이 실행 중이므로 프로그램이 종료되지 않습니다.
원인을 살펴보려면 UNIT 6 디버거 사용법을 참고해서 반복문에 중단점을 걸고 변수 값의 변화를 추적해보세요.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
int main()
{
int a = 0;
char* zip = malloc(sizeof(char) * 31);
char* cut = { NULL, };
char* result = malloc(sizeof(char) * 31);
bool isit = true;
scanf("%[^\n]s", zip);
char* ptr = strtok(zip, " ");
while (ptr != NULL);
{
cut[a] = ptr;
a++;
ptr = strtok(NULL, " ");
}
for (int i = 0; i < 16; i++)
{
if (cut[i] != NULL)
{
printf("%s\n", cut[i]);
}
}
free(zip);
free(cut);
free(result);
return 0;
}
문제를 만들던 중 문자를 자르고 저장하는 과정을 실행시켰고, 실행은 되지만 결과가 나오지 않아서 보니 while문에 문제가 있는 것 같습니다.
그런데 뭐가 정확히 문제인지 파악이 되지않아 질문남겨봅니다.
nurs es run이렇게 됩니다. 이게 그대로 텍스트 파일로 저장되어 있다고 생각하세요.
1
단어를 입력하세요: nurs es run이것도 텍스트 파일로 저장되어 있다고 생각해보세요.
1
printf("nurs es run\n");
print("1\n");
단어를 입력하세요: nurs es run
1
답변에서 아래 2개의 입력값의 차이가 뭔가요? 차이를 잘 모르겠고요.
질문에 아래 값을 입력하라는게 있어서 동일하게 입력을 했는데요.
입력값이 불일치로 심사통과를 못했다는 것도 이해가 안됩니다.
입력값을 가지고 처리하는 코드 특정 부분이 잘못되었다고 하면 이해가 되는데요. 그럼 코드에는 문제가 없다는 것인지요?
nurs es run
단어를 입력하세요: nurs es run
제 PC에서는 문제 없이 잘 되는 것 같은데요. 답을 올리면 틀림으로 나오는데요. 도움 좀 부탁드립니다.
문의한 코드는 삭제합니다.
(도장_ 관리자님이 수정함 - 원문 제출일: 2019년 9월 12일, 목요일, 오후 11:04)
nurs es run
단어를 입력하세요: nurs es run입니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int main(void)
{
char s1[30];
int length;
scanf("%[^\n]s", s1);
bool ispalindrome = true;
length = strlen(s1);
for (int i = 0; i < length / 2; i++)
{
if (s1[i] != ' ' && s1[length - 1 - i] != ' ')
{
if (s1[i] != s1[length - 1 - i])
{
ispalindrome = false;
break;
}
}
}
printf("%d\n", ispalindrome);
return 0;
}
출력해봤을땐 이상없는데 여기서는 틀림이라고 나옵니다 . 왜 그런거죠?