문제 설명
찾는 사람이 있는 자리 번호를 모두 인쇄하는 코드를 설계하라
첫 줄에 정수 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 습관화 필요