본문 바로가기

C 언어/연습문제

C언어 연습문제11

[문제]

회문(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