문자(열) 입출력

Study/C 2014. 9. 1. 10:46

/*                문자 입출력함수                */

    ch1=getchar();      //문자 입력함수 영어2개 단어  한글은 한글자

    ch2=fgetc(stdin);   //엔터키 입력받음


    putchar(ch1);        //ch1에 저장된 문자 출력

    fputc(ch2, stdout);//ch2에 저장된 엔터 출력



/*                문자열 입출력함수(1)            */

#include <stdio.h>


int main()

{

    char *str = "Simple String";


    printf("1. puts test --------- \n");

    puts(str);

    puts("So Simple Sting");


    printf("2. fputs test -------- \n");

    fputs(str, stdout);

    printf("\n");

    fputs("So Simple Sting", stdout);

    printf("\n");


    printf("3. end of main ------- \n");


    return 0;

}

puts와 fputs의 차이점은 \n이 자동으로 지루어 지지만 fpus는 자동으로 개행이 이뤄지지 않는다

char *str = "Simple String"; 를    char str[] = "Simple String";로 변경해도 
동일 출력이 이루어진다. 




/*                     문자열 입력함수 (2)              */
#include <stdio.h>

int main()
{
    char str[7];
    int i;

    for(i=0;i<3;i++)
    {
        fgets(str, sizeof(str), stdin);
        printf("Read %d: %s \n", i+1, str);
    }
    return 0;
}




문자열 입력함수에는 gets와 fgets가 있다 gets와 fgets의 동작은 동일하지만 차이점이있다.


그것은 선언해준 배열의 길이를 초과하면 gets는 할당받지 않은 메모리를 침범해 에러가 생긴다.


하지만 fgets는 정해진 배열의 길이한도 내에서 입력된 문자열을 짤라낸다.

예를들어 배열이 7개로 정해진 함수에 입력을 8개의 숫자를 받는다면

8개의 숫자중에 6개의 숫자와 +  \0 널문자  = 7개 배열에 저장한다. 

(파일의 끝에 도달하거나 함수호출 실패시 Null 포인터 반환)

'Study > C' 카테고리의 다른 글

문자열 비교  (0) 2014.09.01
구조체  (0) 2014.09.01
탐색 알고리즘  (0) 2014.08.30
함수포인터  (1) 2014.08.27
이중 포인터 예문  (0) 2014.08.27
Posted by 차희빈

차희빈

달력