본문 바로가기

지식

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("해당하는 자료가 없습니다");

}

반응형