본문 바로가기
C 프로그래밍

독학으로 배우는 C언어 014 문자와 문자열 출력함수

by 솔토지빈 2024. 7. 7.
반응형

독학으로 배우는 C언어 014 문자와 문자열 출력함수

Contents

     

    1. 문자와 문자열 출력함수

    printf() 함수 외에 다음과 같은 출력함수가 있다.

     

    putchar() ----> 단 한 개의 문자 출력

    puts() ----> 하나의 문자열을 출력

     

    지금까지 사용한 printf 함수는 문자, 숫자, 문자열 등 거의 모든 데이터를 출력할 수 있는 반면에 putchar는 문자만 출력할 수 있고 puts 함수는 문자열만을 출력한다.

    printf 함수에서는 형식 지정자 %s 를 사용하여 문자열 자료를 출력했지만, putcharputs 함수는 형식 지정자 없이 출력할 문자열 자료(상수나 변수)를 괄호 안에 기술한다.

     

    2. putchar()

    putchar() 함수는 단일 문자를 출력하는 함수이다. 문자 출력 후 줄 바꿈을 하지 않는다.

     

    실습 1: putchar() 이용한 문자 출력

    다음의 프로그램을 작성하여 ex041.c 저장하고 실행해 보자.

    #include <stdio.h>                       
    int main(void)
    {
    	putchar('A');
    	putchar('\n');
    	putchar('A' + 1);
    	putchar('\t');  
    	putchar('D' - 1);
    	return 0;
    }

     

    설명 : 행 설명

    putchar() 함수의 형식은 putchar(출력 문자) 이며 괄호 안에서 사용할 수 있는 값으로는 문자상수, 문자변수, 아스키코드, 수식을 사용할 수 있다.

     

    5: putchar() 함수는 줄 바꿈을 하지 않는다.

    꼭 하고 싶다면 putchar('\n')를 사용하면 줄 바꿈을 해준다.

    6: 'A'+1 을 사용 했는데 단일문자는 정수형과 호환이 된다고 전에 배웠다.

    ‘A’+1은 대문자 A의 아스키코드값 651을 더하면 66이다.

    putchar 함수가 문자만 출력하므로 66에 대한 아스키코드 B를 출력해 준다.

    7: \tTAB키를 누르는 거와 같은 기능을 한다.

     

    그밖에 기능

    putchar('\a') 는 벨소리가 난다.
    putchar('\b') 는 백 스페이스 기능을 한다.

     

    3. puts()

    puts()는 하나의 문자열을 출력하고 자동으로 줄을 바꾸어 준다.

     

    실습 1: puts() 문자열 출력1

    다음의 프로그램을 작성하여 ex042.c 저장하고 실행해 보자.

    #include <stdio.h>
    int main(void)
    {
    	printf("C Programming.\n");
    	puts("C Programming.");
    	printf("C Programming.\n");
    	return 0;
    }

     

    설명 : 행 설명

    3줄의 출력함수는 같은 결과가 출력된다.

    puts 함수는 문자열을 출력하기 위한 전용 함수이다.

    자동으로 줄 바꿈이 되며 프로그램 수행 속도도 빠르다.

    단점이라면 printf 함수에서 사용하는 형식 지정자를 쓸 수 없다는 것이다.

    puts()를 사용하여 만든 프로그램이 printf()로 만든 프로그램보다 속도도 빠르고 실행파일 크기도 작다.

     

    실습 2: puts() 문자열 출력 2

    다음의 프로그램을 작성하여 ex043.c 저장하고 실행해 보자.

    #include <stdio.h>
    int main(void)
    {
    	printf("한국\n");
    	puts("미국");
    	printf("중국");
    	printf("일본");
    	return 0;
    }

     

    실습 3: puts() 문자열 출력 3

    다음의 프로그램을 작성하여 ex044.c 저장하고 실행해 보자.

    #include <stdio.h>
    int main(void)
    {
    	char *a, *b;
    	a = "Korea";
    	b = "Seoul";
    	puts("%s  %s  \n", a, b);
    	puts("Korea");
    	puts("Seoul");
    	return 0;
    }

     

    설명 : 행 설명

    puts 에서는 양식 문자 %을 사용할 수 없으므로 puts("%s %s \n",a,b); 는 잘못된 문장이다.

     

    실습 4: puts() 문자열 출력 4

    다음의 프로그램을 작성하여 ex045.c 저장하고 실행해 보자.

    #include <stdio.h>  
    int main(void)
    {
        char* str;
        str = "C Programming.";
        printf("%s", str);
        puts("\n");
        puts(str);
        puts(str);
        return 0;
    }

     

    설명 : 행 설명

    변수를 puts()에 직접 대입시켰다.

    puts() 에는 puts(a,b); 와 같이 2개의 변수를 사용할 수 없다.

     

    실습 5: puts() 문자열 출력 5

    다음의 프로그램을 작성하여 ex046.c 저장하고 실행해 보자.

    #include <stdio.h>
    int main(void)
    {
        char c1 = 'I',
             c2 = 'C',
            *s1 = "like",
            *s2 = "program";
        putchar(c1);
        putchar(' ');
        puts(s1);
        putchar(c2);
        putchar(' ');
        puts(s2);
        return 0;
    }

     

    설명 : 행 설명

    putchar 함수는 한 문자를 출력하고 줄 바꿈을 하지 않는다.

     

    ex046.c 는 다음과 같이 프로그래밍할 수 있다.

    #include <stdio.h>
    int main(void)
    {
    char c1 = 'I', c2 = 'C', *s1 = "like", *s2 = "computer";
    printf("%c %s\n %c %s\n", c1, s1, c2, s2);
    return 0;
    }

     

    출력 결과는 같지만 printf() 함수만 사용한 프로그래밍이 더 간단하다.

    그러나 printf() 는 수치, 수식 등의 계산 결과와 문자, 문자열 등을 처리하므로 많은 수학적인 라이브러리가 필요하다.

    putchar() 함수나 puts() 함수는 문자와 문자열만 처리하면 되므로 수학적인 라이브러리가 필요없다.

    따라서 실행파일의 크기도 작아지고 실행속도도 빠르다는 장점이 있다.

     

    반응형

    댓글