Home > Study > C Language > C Example > [ex75] 사람 찾기

[ex75] 사람 찾기
Study Language

문제 설명


찾는 사람이 있는 자리 번호를 모두 인쇄하는 코드를 설계하라
첫 줄에 정수 n(1<=n<=10), 다음 줄부터 n명 이름이 공백으로 분리되어 입력된다
단, 입력되는 이름은 공백이 없는 것으로 가정한다
마지막 줄에 줄에 찾고자 하는 사람의 이름이 입력된다
N명 사람들 중에서 찾는 사람을 모두 찾아 그 자리 번호를 한 줄에 하나씩 인쇄하라
단, 자리 번호는 처음 사람이 1번부터 시작하며 찾는 사람은 반드시 1명 이상 존재한다
문자열 비교는 기존에 설계했던 문자열 비교 프로그램을 참고한다

#include <stdio.h>
void main(void)
{
	// 코드 작성
}

입력 설명


이름은 최대 20자 이하임

입력 예시


5
kim lee park kim song
kim

출력 예시


1
4

정답 코드


#include <stdio.h>

char a[10][21];
char b[21];

int str_cmp(int n)
{
	int i = 0;

	for (;;)
	{
		if (a[n][i] != b[i]) return 0;
		if (a[n][i] == '\0' && b[i] == '\0') return 1;
		i++;
	}

#if 0
	while (a[n][i] != '\0' || b[i] != '\0')
	{
		if (a[n][i] != b[i]) return 0;
		i++;
	}
	
	return 1;
#endif
}

void main(void)
{
	int i;
	int n;

	scanf("%d", &n);

	for (i = 0; i < n; i++)
	{
		scanf(" %s", &a[i][0]);
	}

	scanf(" %s", &b[0]); // scanf(" %s", b);

	for (i = 0; i < n; i++)
	{
		if(str_cmp(i) == 1) printf("%d\n", i + 1);
	}
}

메모


printf 내부의 \n 습관화 필요