C언어/백준

5622

twoweeks-within 2024. 11. 9. 01:45

1. int arr[3] = {3,5,6};  

 sizeof (arr) = 12 // 4 + 4 + 4

2. eng[i] == one[i] 

 i 가  배열 범위 초과시 문제생김 > 문자열에서 strchr() ' 문자' , strstr() ' 문자열'

3. 문자열길이 : strlen

4. 배열초기화 : str[] = {};, str[] = {0};

5. 배열 과 문자열

 문자열: \0 으로 끝나는 문자 배열

 char you[] = " happy";     // 자동으로 끝에 \0 이 추가됨

 char you[] = { 'h','a'.'p','p','y'); // 배열 이므로 %s 로 출력하면(문자열) 제대로 안나옴

> char you[] = { 'h','a'.'p','p','y','\0'); // 문자열

>> strlen(you) = 5  // \0 은 제외

 

                if(strchr(two,eng[i])){
                        ch[2]= 3 ;
                }
         

// 아.. 이러면 중복된 문자는 합쳐지지 못함..

>>   ch[2] += 3 ; 또 나올때마다 3을 더해줌  // += : 값을 더하고 그값을 저장하는 연산자

                                                                     // 응용 : *=  곱하고 그값을 저장

 

 

int change(char eng[]){
        int ch[10]={0};
        int total=0;

        char two[4] = {'A','B','C','\0'};
        char three[4] = {'D','E','F','\0'};
        char four[4] = {'G','H','I','\0'};
        char five[4] = {'J','K','L','\0'};
        char six[4] = {'M','N','O','\0'};
        char seven[5] = {'P','Q','R','S','\0'};
        char eight[4] = {'T','U','V','\0'};
        char nine[5] = {'W','X','Y','Z','\0'};

        for(int i=0; i< strlen (eng); i++){

                if(strchr(two,eng[i])){
                        ch[2]+= 3 ;
                }
                if(strchr(three,eng[i])){
                        ch[3] += 4;
                }
                if(strchr(four,eng[i])){
                        ch[4] += 5;
                }
                if(strchr(five,eng[i])){
                        ch[5] += 6;
                }
                if(strchr(six,eng[i])){
                        ch[6] += 7;
                }
                if(strchr(seven,eng[i])){
                        ch[7] += 8;
                }
                if(strchr(eight,eng[i])){
                        ch[8] += 9;
                }
                if(strchr(nine,eng[i])){
                        ch[9] += 10;
                }
        }

        for(int i=2; i<10 ;i++){        
            total += ch[i];
        }
        return total;
}


int main(){
        char ans[20];
        scanf("%s",ans);
        printf("%d\n",change(ans));

return 0;
}

'C언어 > 백준' 카테고리의 다른 글

25206번  (1) 2024.11.13
2941번 , 1316번  (0) 2024.11.13
10988번, 1157번  (0) 2024.11.13
11718번  (0) 2024.11.10
2908 : 상수  (0) 2024.11.07