47.3 연습문제: 정수 회문 판별하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
int main(void)
{
long long num1;
char text[30];
printf("정수를 입력하세요>> ");
scanf("%lld", &num1);
sprintf(text, "%lld", num1);
int length;
bool isPalindrome = true;
length = strlen(text);
int begin = 0;
int end = length - 1;
while (begin < end)
{
if (text[begin] != text[end])
{
isPalindrome = false;
break;
}
begin++;
end--;
}
printf("%d\n", isPalindrome);
return 0;
}
47.4 연습문제: 4-gram 만들기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main(void)
{
char text[30];
int length;
int n = 4;
scanf("%s", text);
length = strlen(text);
if (length < n)
printf("wrong\n");
else
{
for (int i = 0; i < length - (n - 1); i++)
{
for (int j = 0; j < n; j++)
printf("%c", text[i + j]);
printf("\n");
}
}
return 0;
}
47.5 심사문제: 공백이 포함된 회문 판별
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int main(void)
{
char text[31];
int length;
bool isPalindrome = true;
printf("공백이 포함된 문자열을 입력해주세요>> ");
scanf("%[^\n]s", text);
length = strlen(text);
if (length > 30)
{
printf("입력 가능한 문자열의 최대 길이는 공백을 포함하여 30 이하입니다.\n");
return 1;
}
else
{
for (int left = 0, right = length - 1; left < right; left++, right--)
{
while (text[left] == ' ')
left++;
while (text[right] == ' ')
right--;
if (text[left] != text[right])
{
isPalindrome = false;
break;
};
}
if(isPalindrome)
printf("입력한 문자열은 회문입니다.(%d)\n", isPalindrome);
else
printf("입력한 문자열은 회문이 아닙니다.(%d)\n", isPalindrome);
}
return 0;
}
47.6 심사문제: N-gram 만들기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main(void)
{
int N;
char word[11];
printf("정수 입력>> ");
scanf("%d", &N);
printf("문자열 입력>> ");
scanf("%s", word);
printf("\n");
int length = strlen(word);
if (length > 10)
{
printf("입력 가능한 문자열의 최대 길이는 10입니다.\n");
return 1;
}
else if (length < N)
{
printf("wrong\n");
return 1;
}
else
{
for (int i = 0; i < length - N + 1; i++)
{
for (int j = i; j < i + N; j++)
{
printf("%c", word[j]);
}
printf("\n");
}
}
return 0;
}