[문제]
회문(Palindrome)은 앞으로 읽으나 뒤로 읽으나 차이가 없는 단어들을 뜻한다. 예를 들어서 level, bob과 같은 단어들은 회문에 속한다. 이에 우리는 인자로 전달되는 영단어가 회문인지 아닌지를 판단해서 그 결과를 출력하는 기능의 함수와 문자열의 길이를 반환하는 함수 두 개를 정의하고 이에 적절한 main 함수를 정의해보고자 한다. 단, 구현의 편의를 위해서 대소문자까지 일치해야 회문으로 인정하기로 하겠다.
<조건>
인자로 전달되는 영단어가 회문인지 아닌지를 판단해서 그 결과를 출력하는 기능의 함수는 반환형이 void, 매개변수가 1개이어야 하며, 문자열의 길이를 반환하는 함수는 반환형이 int, 매개변수가 1개이어야 한다.
[실행결과]
문자열 입력: abba
회문입니다.
[코드]
#include<stdio.h>
void Is_Palindrome(char* arr);
int StringLen(char* arr);
int main(void)
{
char arr[100];
printf("문자열 입력: ");
scanf_s("%s", arr, 100);
Is_Palindrome(arr);
return 0;
}
void Is_Palindrome(char* arr)
{
int i = 0;
int len = StringLen(arr);
for (i = 0; i < len / 2; i++)
{
if (arr[i] != arr[(len - 1) - i])
{
printf("회문이 아닙니다.");
return;
}
}
printf("회문입니다.");
}
int StringLen(char* arr)
{
int len = 0;
while (arr[len] != 0)
len++;
return len;
}
<참고>
윤성우의 열혈 C 프로그래밍
'C 언어 > 연습문제' 카테고리의 다른 글
C언어 연습문제13 (0) | 2021.11.11 |
---|---|
C언어 연습문제12 (0) | 2021.11.11 |
C언어 연습문제10 (0) | 2021.11.11 |
C언어 연습문제9 (3) | 2021.11.10 |
C언어 연습문제8 (0) | 2021.11.10 |