이전 String 에서 알게 된것을 토대로 getchar( ) 를 활용해
예제를 하나 해볼까 합니다.
다음과 같은 문자열을 입력합니다.
your capacity to enjoy life
앞뒤 공백을 제거 하는 로직을 생성하여 아래와 같은 결과를 도출할 것입니다.
your capacity to enjoy life
#include <stdio.h>
#include <ctype.h>
#define BUFFER_SIZE 80
int read_line_with_compression(char compressed[], int limit);
int main() {
char line[BUFFER_SIZE];
while (1) {
printf("$ ");
int length = read_line_with_compression(line, BUFFER_SIZE);
printf("%s:%d\n", line, length);
}
return 0;
};
int read_line_with_compression(char compressed[], int limit) {
//
int ch, i = 0;
while ((ch = getchar()) != '\n') {
if (i < limit - 1 && (!isspace(ch) || i > 0 && !isspace(compressed[i - 1])))
compressed[i++] = ch;
}
if (i > 0 && isspace(compressed[i - 1]))
i--;
compressed[i] = '\0';
return i;
}
$ your capacity to enjoy life
your capacity to enjoy life:27
위와 같은 결과가 도출 됩니다.