c 프로그래밍 언어연습 문제 1-9입력 흐름을 출력 흐름으로 복사하고 여러 개의 빈칸을 하나의 빈칸으로 필터합니다
6832 단어 프로그램 설계
입력 흐름을 출력 흐름으로 복사하는 프로그램을 작성하지만, 입력 흐름에 있는 여러 개의 빈칸을 하나의 빈칸으로 필터합니다.
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;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
'좋은 코드/나쁜 코드 학습 디자인 입문'읽고 신경 쓴 일 노트총체적으로 말하자면, 대부분의 경우 '응, 그래' 에 동의할 수 있다. 또 앞으로'위험'과'주의(caution)'사이에 또 하나의 생명상태가 추가되는 상황에서 그것을 판단하는if문은 반드시 2행과 3행 사이에 틀리지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.