문자열 심화 문제

최주영·2023년 1월 6일
0

C언어

목록 보기
12/15

✅ strcmp() 문자열 함수 문제

  • 문제 : 두 개의 문자열 데이터를 입력받아 크기를 비교하는 프로그램
// 소스코드
#include <stdio.h>
#include <string.h>

int main()
{
    char data1[100];
    char data2[100];

    printf("첫번째 문자열 데이터를 입력하시오 : ");
    scanf_s("%s", data1,100);
    printf("===============\n");
    printf("두번째 문자열 데이터를 입력하시오 : ");
    scanf_s("%s", data2,100);
    printf("===============\n");
    
    if (strcmp(data1, data2) == 0)
    {
        printf("두 문자열은 같습니다");
    }
    else if (strcmp(data1, data2) < 0)
    {
        printf("앞 문자열이 뒤 문자열보다 앞에 있습니다");
    }
    else
    {
        printf("앞 문자열이 뒤 문자열보다 뒤에 있습니다");
    }
    printf("\n");
    printf("===============\n");
    printf("작성자 : 2017E7043 최주영");

    return 0;
}
  • 출력결과

✅ strchr() 문자열 함수 문제

  • 문제 : 문자열에서 특정 문자의 위치를 찾는 프로그램
// 소스코드
#include <stdio.h>
#include <string.h>

int main()
{
    char data[100];
    char find = 'M';
    char* p;
    printf("문제 : strchr() 함수를 이용하여 문자열에서 특정 문자의 위치를 찾는 프로그램\n");
    printf("========================\n");
    printf("문자열을 입력하시오 : ");
    scanf_s("%s", data,100);
    printf("========================\n");
    printf("%s에서 찾을 문자를 입력하시오 : ",data);
    scanf_s(" %c",&find);
    printf("========================\n");

    p = strchr(data, find);
    
    if (p == NULL)
    {
        printf("%s에는 %c가 없습니다.", data, find);
    }
    else
    {
        while (p != NULL)
        {
            printf("문자 %c가 %d번 자리에 있습니다.\n", *p, (p - data) + 1);
            p = strchr(p + 1, find);
        }
    }
    printf("========================\n");
    printf("작성자 : 2017E7043 최주영");

    return 0;
}
  • 출력결과

✅ strstr() 문자열 함수 문제

  • 문제 : 문자열에서 특정 단어의 위치를 찾는 프로그램
// 소스코드
#include <stdio.h>
#include <string.h>

int main()
{
    char data[100];
    char data1[100];
    char* p;
    int location;
    printf("문제 : strstr() 함수를 이용하여 입력받은 문자열에서 입력받은 특정 문자열의 위치를 찾는 프로그램\n");
    printf("========================\n");
    printf("문자열을 입력하시오 : ");
    gets(data);
    printf("========================\n");
    printf("%s에서 찾을 문자열을 입력하시오 : ",data);
    scanf_s("%s",data1,100);
    printf("========================\n");

    p = strstr(data,data1);
    location = (int)(p - data);

    if (p != NULL)
    {
        printf("첫 번째 %s가 %d자리에 있습니다.\n", data1, location);
    }
    else
    {
        printf("%s는 %에 없음\n",data1,data);
    }
    printf("========================\n");
    printf("작성자 : 2017E7043 최주영");

    return 0;
}
  • 출력결과

✅ strcmp() 심화 문제 [1]

  • 문제 : 배열을 이용한 자동응답 프로그램
    ( “이름”을 입력하면 본인이름, “학번”을 입력하면 본인학번, “연락처”를 입력하면 전화번호, “전공”을 입력하면 본인전공이 출력)
// 소스코드
#include <stdio.h>
#include <string.h>

int main()
{
    char str[5];
    char menu[4][100] =
    {
        "최주영",
        "2017E7043",
        "010-8304-3868",
        "컴퓨터공학"
    };

    printf("문제 : 배열을 이용한 자동응답 프로그램\n");
    printf("=================\n");
   
    while (1)
    {
        printf("이름,학번,번호,전공 중에 확인하고 싶은것을 입력하시오 : ");
        scanf_s("%s", str, 5);

        if (strcmp(str, "이름") == 0)
        {
            printf("---------> 나의 이름 = %s\n", menu[0]);
        }
        else if (strcmp(str, "학번") == 0)
        {
            printf("---------> 나의 학번 = %s\n", menu[1]);
        }
        else if (strcmp(str, "번호") == 0)
        {
            printf("---------> 나의 번호 = %s\n", menu[2]);
        }
        else if (strcmp(str, "전공") == 0)
        {
            printf("---------> 나의 전공 = %s\n", menu[3]);
        }
        else
        {
            printf("---------> 다시 프로그램을 실행해 주어진 메뉴만 입력하십시오\n");
            break;
        }
    }
    printf("========================\n");
    printf("작성자 : 2017E7043 최주영");

    return 0;
}
  • 출력결과

✅ strcmp() 심화 문제 [2]

  • 문제 : hangman(단어맞추기) 게임 프로그램을 작성
// 소스코드
#include <stdio.h>
#include <string.h>

int check(char s[], char a[], char ch)
{
    int n;
    for (n = 0; s[n] != '\0'; n++)
    {
        if (s[n] == ch)
        {
            a[n] = ch;
        }
    }

    if (strcmp(s, a) == 0)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

int main()
{
    char solution[100] = "choi ju yung";
    char answer[100] = "____ __ ____";
    char ch;
    int N, blank = 0;

    printf("문제 : hangman(단어맞추기) 게임 프로그램\n");
    printf("=================\n");

    while (1)
    {
        printf("문자열을 입력하시오 : %s \n", answer);
        printf("문자를 추측하시오:");
        ch = getchar();
        if (check(solution, answer, ch) == 1)break;
    }

    printf("========================\n");
    printf("작성자 : 2017E7043 최주영");

    return 0;
}
  • 출력결과

profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글