C언어- 문자열 배열 /소스코드/예제 - 입력한 도서명이 도서목록에 있는지 검색
문제 )
사용자가 입력한 도서명이 도서목록에 있는지 검색하는 프로그램을 작성 !!
사용자가 입력한 도서명이 있으면 " 해당 자료가 있습니다 " 없으면 "해당 자료가 없습니다" 라고 출력한다
소스코드 )
#include<stdio.h>
#include<string.h>
main()
{
char book[10][20] = { "clanguage","java","maple","math","kim" }; // 방 갯수는 넉넉하게 10,20 으로 설정하고 도서명을 초기화해서 입력해준다
char input[20]; // 도서명에도 널널하게 ! 참고로 문자열 배열은 한 문자당 방하나 ... 메모리소모가 심할수밖에없다 ㅠ
int i = 0;
int found = 0; // 사용할 변수들 i는 다섯과목을 차례로 검사할때쓸 변수 found는 해당하는 자료를 찾았는지 판독할때 쓸 변수
printf("검색할 도서명을 입력하세요 :");
gets(input); // 입력받는 함수 !!
while (i < 5 && !found) //5개의 도서를 검사하고 검사도중 예를들어 2번째 검사중 찾으면 반복을 벗어나야하니 !found 라는 조건을 달아주자 !
if (strcmp(book[i++], input) == 0) // strcmp함수는 문자를 비교할때 쓰는것 첫도서부터 마지막도서까지 차례로 검사해야하니 i++
found = 1; // strcmp 함수에서 문자를 비교해서 두 문자가 같으면 0 즉 if문이 성립 그러면 found값은 1로 변경 동시에 아래 if else문에 따라서 값이 결정 !
if (found)
puts("해당하는 자료가 있습니다.");
else
puts("해당하는 자료가 없습니다");
}