도담이 먹여 살려야하는 집사

[CS50 2주차] 팀과제 본문

카테고리 없음

[CS50 2주차] 팀과제

천재도담 2021. 1. 21. 17:38

부스트코스 CS50 팀과제

1. 배열을 사용한 풀이

처음에 생각했던 풀이 방법은 String 타입의 2차원 배열을 사용한 기능 구현이었다. 사용자함수를 사용해서 main메소드에서 menu함수를 호출하는 식으로 코드를 구현했다.

#include<cs50.h>
#include<stdio.h>
#include <string.h> //strcmp 을 사용하기 위해 추가 해줌 

string array(string day); // implicit declaration of function 함수를 선언하지 않은 경우 발생했던 에러 

int main(void) { 
  string day = get_string("요일을 입력하세요 : \n");
  string menu = array(day);
  printf("%s : %s\n",day,menu);
 
}
string array(string day) {  
      string array[7][2] = { 
        {"월요일" , "청국장"},
        {"화요일" , "비빔밥"},
        {"수요일" , "된장찌개"},
        {"목요일" , "칼국수"},
        {"금요일" , "냉면"},
        {"토요일" , "소불고기"},
        {"일요일" , "오삼불고기"}
    };
    string result = ""; 
    for(int i = 0; i< 7; i++) { 
        if(strcmp(array[i][0],day) == 0 ) { 
        
            result = array[i][1];
        }
    }
    return result;
}

 

#include <string.h> 와 strcmp(문자열 비교)

  • array 함수에서 if 조건문에 strcmp (문자열 비교)를 사용하기 위해서 추가해줌.
  • strcmp 는 아스키 코드를 기반으로 하여 -1, 0, 1을 리턴함.
  • 예를 들어 str1 = "월요일" , str2 = "월요일" 이라면 strcmp(str1,str2) 은 같은 문자열이기 때문에 0을 리턴한다.
  • 참고한 사이트 

coding-factory.tistory.com/594

 

[C언어 / C++] 문자열 비교 strcmp, strncmp 함수 사용법 & 예제 + 구현

두 개의 문자열이 같은지 비교하고 싶다면 strcmp, strncmp함수를 사용하면 됩니다. strcmp함수는 비교대상 문자열인 string1 string2이 같은지 비교합니다. strncmp는 문자열을 비교한다는 것에서 일정 길

coding-factory.tistory.com

m.blog.naver.com/PostView.nhn?blogId=nekh802&logNo=221526477142&proxyReferer=https:%2F%2Fwww.google.com%2F

 

c언어 문자열(string)을 배열에 넣기

​"문자열은 char형의 1차원 배열""문자열의 배열은 char형의 2차원 배열" 임을 기억...

blog.naver.com

2. if ... else if를 사용한 풀이

#include<cs50.h>
#include<stdio.h>
#include <string.h>

int main(void) {
    string day = get_string("요일을 입력해주세요 : \n");
    string menu = "";
    if(strcmp(day,"월요일")== 0) {
        menu = "청국장";
    }else if(strcmp(day,"화요일")==0){
        menu = "비빔밥";
    }else if(strcmp(day,"수요일")==0){
        menu = "된장찌개";
    }else if(strcmp(day,"목요일")==0){
        menu = "칼국수";
    }else if(strcmp(day,"금요일")==0) {
        menu = "냉면";
    }else if(strcmp(day,"토요일")==0){
        menu = "소불고기";
    }else if(strcmp(day,"금요일")==0){
        menu = "오삼불고기";
    }
    printf("%s:%s\n",day,menu);
}
Comments