c 프로그래밍 언어연습 문제 1-9입력 흐름을 출력 흐름으로 복사하고 여러 개의 빈칸을 하나의 빈칸으로 필터합니다

6832 단어 프로그램 설계
Write a program to copy its input to its output, replacing each string of one or more blanks by a single blank.
입력 흐름을 출력 흐름으로 복사하는 프로그램을 작성하지만, 입력 흐름에 있는 여러 개의 빈칸을 하나의 빈칸으로 필터합니다. 

1.

#include <stdio.h>
 
int main(void)
{
  int c;
  int inspace;
 
 // inspace
= 0; while((c = getchar()) != EOF) { if(c == ' ') { if(inspace == 0) { inspace = 1; putchar(c); } } /* We haven't met 'else' yet, so we have to be a little clumsy */ if(c != ' ') { inspace = 0; putchar(c); } } return 0; }


2.

Chris Sidi writes: "instead of having an"inspace "boolean, you can keep track of the previous character and see if both the current character and previous character aracter spaces:"Chris Sidi는 "'inspace'라는 부울 깃발 변수를 사용하지 않고 이전 수신 문자가 공백인지 추적하여 필터링할 수 있다"고 적었다
 
#include <stdio.h>
 
/* count lines in input */
int
main()
{
        int c, pc; /* c = character, pc = previous character */
 
        /* set pc to a value that wouldn't match any character, in case
        this program is ever modified to get rid of multiples of other
        characters */
 
        pc = EOF;
 
        while ((c = getchar()) != EOF) {
                if (c == ' ')
                        if (pc != ' ')   /* or if (pc != c) */ 
                                putchar(c);
 
                /* We haven't met 'else' yet, so we have to be a little clumsy */
                if (c != ' ')
                        putchar(c);
                pc = c;
        }
 
        return 0;
}


3.

Stig writes: "I am hiding behind the fact that break is mentioned in the introduction"!

 
#include <stdio.h>
 
int main(void)
{
        int c;
        while ((c = getchar()) != EOF) {
                if (c == ' ') {
                       putchar(c);
                       while((c = getchar()) == ' ' && c != EOF)
                               ;
               }
               if (c == EOF)
                       break; /* the break keyword is mentioned
                               * in the introduction... 
                               * */
 
               putchar(c);
        }
        return 0;
} 

 

좋은 웹페이지 즐겨찾기