전기전자공학/프로젝트

[Kernighan - C] #2-11 조건문

LinZBe4hia 2017. 6. 25. 22:58

2.11 조건문


[예제 2- 10]

대문자를 소문자로 바꾸는 함수 lower(p.58)을 if-else 대신 조건문을 써서 다시 작성하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#define MAXLINE 1000
 
int getline(char line[], int maxline);
int lower(int);
 
main() {
    char str[100];
    int i;
    getline(str, MAXLINE);
    
    for (i = 0; str[i] != '\0'; i++)
        str[i] = lower(str[i]);
    printf("%s", str);
 
}
 
int lower(int c) {
    c = (c >= 'A' && c <= 'Z') ? c + 'a' - 'A' : c;
    return c;
}
 
int getline(char s[], int lim)
{
    int c, i;
    for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; i++)
        s[i] = c;
 
    if (c == '\n') {
        s[i] = c;
        ++i;
    }
    s[i] = '\0';
    return i;
}
cs