본문 바로가기

프로그램/C언어

【C언어】 기존 데이터와 입력받은 값을 비교 및 위치를 출력하는 소스코드

C언어 소스코드 예시입니다.

기존에 입력된 데이터와 사용자가 입력한 값을 서로 비교하고

기존 데이터에서 어느 위치에 있는지 찾아주는 소스 코드 예시입니다.

주석을 통해 간략하게 설명을 붙여놨습니다.

제일 아래에 파일로 첨부해뒀습니다.




#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>           // str*** 등을 쓰기 위한 헤더파일
#include <stdlib.h>           // malloc을 쓰기 위한 헤더파일
int main() {
        char buffer[100], *temp;
        int size;
        char name[5][10] = {"최", "이", "김", "박", "민"};   // 이번 소스에서 사용하는 기본 데이터 (자유로 바꿔도됨.)
        int i;
        for ((int) i=0;i<5;i++) {
               printf("%d. %s\n", i, name[i]);
        }
        printf("\n단어를 입력하세요\n");
        printf("입력을 중지하려면 엔터를 입력하세요. \n\n");
        while (1) {
               printf("단어 입력 : ");
               gets(buffer);  // 입력을 받아주는 함수
               if (strcmp(buffer, "")==0)    // 엔터를 입력받으면 탈출
                       break;
               else {  // 입력받은 값의 기억공간을 확보하고 복사하는 중
                       size = strlen(buffer) +1;
                       temp = (char *)malloc(size);
                       strcpy(temp, buffer);
               }
               for (i=0;i<5;i++){     // 어디에 있는지 찾아보는 소스
                       if (strcmp(temp, name[i])==0) {
                              printf("%d번째에 있습니다.\n", i);
                              break;
                       }
                       if (i == 4)
                              printf("해당 단어가 없습니다.\n");
               }
        }
}