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 |