💻Computer Science/📕개발 언어 (Language)

[C][Ch.6] C언어 기초5

Written by Donghak Park

C언어 기초 5

입출력

기본적인 입출력

  • C언어에서는 기억장치에 저장되는 파일을 다루는 것처럼 입출력 장치를 다룹니다. 즉 키보드, 마우스 같은 콘솔 장치도 파일처럼 처리합니다. stdin 표준 스트림을 통해서 입력 장치를 다루며, stdout 표준 스트림을 통해서 출력 장치를 다룹니다.

스트림

  • C 언어는 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림이라는 것을 통해 다룹니다. 스트림이란 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미합니다. 이러한 스트림은 "stdin", "stdout", "stderr" 등이 기본으로 제공되고 있습니다.

EOF

  • C 언어에서는 파일의 끝에 도달했을 때 특별한 값을 반환합니다. 그 값을 EOF (End Of File)이라고 하며, 실제로 이 값은 -1을 나타냅니다.

문자 입력 함수

  • getchar() 함수
    • getchar() 함수는 표준 입력 스트림인 키보드로부터 "하나의 문자"를 입력 받음
#include <stdio.h>
int getchar(void);
  • fgetc() 함수
    • 마찬가지로 "하나의 문자"를 입력받음 하지만 입력받을 스트림을 인수로 전달하여 지정이 가능하다
#include <stdio.h>
int fgetc(FILE *stream);
  • putchar() 함수
    • 하나의 문자를 출력하는 함수
#include <stdio.h>
int putchar(int c);
  • fputc() 함수
    • 하나의 문자를 출력, 출력할 스트림 지정 가능
#include <stdio.h>
int fputc(int c, FILE *stream);

문자열

  • C언어에서는 ""를 사용해 표현되는 문자열을 문자열 상수라고 부릅니다. 이러한 문자열은 연속된 문자들의 집합입니다. 따라서 다음과 같이 문자열을 선언할 수 있습니다.
char str[] = "this is string";
char str1[7] = "String";

NULL 문자

  • 문자형 배열로 선언된 변수는 문자열의 끝을 알려야 합니다. 이때 이를 위해서 NULL 값을 추가해줍니다. 이는 '\0' 으로 표시하고, 아스키코드값으로는 0입니다.

문자열 입력

  • fgets() 함수
    • 문자열을 입력 받을 수 있습니다.
#include <stdio.h>
char *fgets(char * restrict s, int n, FILE * restrict stream);

문자열 출력

  • puts() 함수
#include <stdio.h>
int puts(const char *s);
  • fputs() 함수
#include <stdio.h>
int fputs(const char * restrict s, FILE * restrict stream);

문자열 처리 함수

  • C언어에서 문자열이란 기본 타입에 해당하지 않기 때문에 컴파일러가 제공하는 연산자의 사용이 자유롭지 않습니다. 따라서 다양한 함수를 사용해서 처리합니다.
  • strlen() 함수
    • 문자열의 길이를 반환합니다. ( 널 문자는 길이에서 제외합니다.)
#include <string.h>
size_t strlen(const char *s);
  • strcat() 함수와 strncat() 함수
    • 하나의 문자열에 다른 문자열을 연결합니다. strncat()은 오버플로우를 방지해줍니다. (최대길이를 제한)
#include <string.h>

char *strcat(char * restrict s1, const char *restrict s2);

char *strncat(char * restrict s1, const char *restrict s2, size_t n);
  • strcpy() 함수와 strncpy() 함수
    • strcpy(), strncpy()는 문자열을 복사하는 함수입니다.
#include <stdio.h>

char *strcpy(char * restrict s1, const char* restrict s2);

char *strncpy(char * restrict s1, const char * restrict s2, size_t n);
  • strcmp() 함수
    • 문자열의 내용을 비교하는 함수 입니다.
    • 완전히 같으면 0 반환
    • 첫번째 인수가 더 크면 양수 반환
    • 두번째 인수가 더 크면 음수 반환
#include <stdio.h>

int strcmp(const char *s1, const char *s2);
  • atoi(), atol(), atoll(), atof() 함수
    • 이 함수들은 문자열 타입에서 숫자 타입으로 변환해주는 함수입니다.
#include <stdlib.h>
int atoi(const char *nptr);
long int atol(const char *nptr);
long long int atoll(const char *nptr);
double atof(const char *nptr);
  • toupper() 함수와 tolower()함수
    • 문자열을 모두 대문자, 소문자로 전환하는 함수입니다.
#include <ctype.h>
int toupper(int c);
int tolower(int c);

Reference

'💻Computer Science > 📕개발 언어 (Language)' 카테고리의 다른 글

[C][Ch.7] C언어 기초6  (0) 2021.09.10
[C][Ch.5] C언어 기초4  (0) 2021.09.08
[C][Ch.4] C언어 기초3  (2) 2021.08.03
[C][Ch.3] C언어 기초2  (0) 2021.07.29
[C][Ch.2] C언어 기초  (2) 2021.07.22