상세 컨텐츠

본문 제목

특정 문자를 입력했을 때, 문자 하나 더 받기

c언어

by 빙하둘리 2022. 7. 3. 18:32

본문

728x90

백준 1406번 에디터 문제를 풀 때, 입력한 문자가 P일 때, 문자를 하나 더 받아야 되었다.

입력 양식은 다음과 같다.

백준 1406 에디터 문제 입력 예시
P 입력할문자
ex)P K

일반화를 한다면
'특정 문자' '입력할 문자'
를 명령프롬프트에 쓴다.

 

P를 입력하면 문자를 하나 더 받는 코드는 다음과 같다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	char c1;
	char c2;

	printf("문자를 입력하세요: ");
	scanf("%c", &c1);   // 문자를 입력받아서 변수에 저장
	if (c1 == 'P') //일반화)c1=='특정문자'
	{
		scanf(" %c", &c2); //%c 앞에 공백을 포함해야된다. 특정문자 다음 스페이스와 c2를 둘 다 인식해야 되기 때문
		printf("%c AND %c\n", c1, c2);
	}
	else
	printf("%c\n", c1); //특정문자를 입력하지 않았을 때는 입력한 문자 하나만 나오게 한다.

	return 0;
}

중요한 부분은 scanf(" %c", &c2); //%c 앞에 공백을 포함해야된다. 특정문자 다음 스페이스와 c2를 둘 다 인식해야 되기 때문

 

입력 양식에서 P(또는 특정 문자) 다음에 띄어쓰기를 포함하므로, %c 바로 앞에 공백을 안 넣어주면 아래의 사진과 같은 오류가 난다.

if(c1=='P')
{
	char ch2;
	scanf("%c", ch2); //%c 바로 앞에 공백을 안 넣어준 상황
 }

 

 

728x90

관련글 더보기

댓글 영역