do while문을 쉼표 연산자를 사용하여 while로 변경하기

MySprtlty·2023년 8월 18일
0

C

목록 보기
32/37

🏷️다음 문장을 쉼표 연산자를 사용해 while문으로 대체해보자.

📌문제

do {
	process(c = func());
}while(c != '\n');
  • func() 문자 하나를 리턴해준다.
  • process()는 받은 문자를 처리하는 어떤 함수이다.

📌답

while (process(c = func()), c != '\n');

📌전체 코드


#include <stdio.h>
#include <stdlib.h>

char func(void);
void process(char);

int main(void)
{
    char c;
    
#if 0 /*기존 코드는 배제한다.*/
    do{
            process(c =func());
    }while(c != '\n');
#endif

	/*정답 코드*/
    while (process(c = func()), c != '\n');

    printf("end of main");
    
    return 0;
}

char func(void)
{
    static char str[] = {'h','e','l','l','o','\n','w','o','r','l','d','\0'}, *pc = str;
    
    return *pc++;
}

void process(char c)
{
    printf("process function is called: %c\n", c); /*process함수가 호출되었음을 알린다.*/
    
    return;
}

0개의 댓글