작성
·
139
0
char c;
int chars = 0;
int words = 0;
int lines = 0;
bool word_flag = false;
bool line_flag = false;
printf("단어를 입력하세요:\n");
while ((c = getchar()) != PERIOD)
{
if (!isspace(c))
chars++;
if (!isspace(c) && !line_flag)
{
lines++;
line_flag = true;
}
if (c == '\n')
line_flag = false;
if (!isspace(c) && !word_flag)
{
words++;
word_flag = true;
}
if (isspace(c))
word_flag = false;
}
printf("글자수 :%d 단어수 :%d 줄수 :%d\n", chars, words, lines);
여기서요 첫번째 두번째부분에 글자수랑 줄바꿈수 세는부분
if (!isspace(c))
chars++;
if (!isspace(c) && !line_flag)
{
lines++;
line_flag = true;
}
여기서 만약에 글자를 입력할때 a를 입력한다고하면
처음에 if (!isspace(c))
chars++; 이게 만족되니까 chars가 1증가하구
그다음에if (!isspace(c) && !line_flag)
여기서요 ! isspace(c)는 true이고 뒤에 지금 line_flag가 false로 초기화되어있으니 ! 붙으면 true니까 전체가 true잖아요
그러면 안에있는lines++;
line_flag = true; 이게 실행되어서 lines 즉 줄수가 1증가해야되는거아닌가요?? 즉 처음에 공백아닌 문자 입력하면 a가되었는 b가되었든 글자수도 1증가하는데 줄수도 lines도 1증가하는거아닌가요?