[C] 문자열 함수

2021. 9. 17. 15:07·C/문법

# 버퍼 (buffer)

버퍼링 : 버퍼를 활용하는 방식, 버퍼를 채우는 동작

C언어에서 많이 사용하는 printf(), scanf()와 같은 표준 입출력 함수를 사용할 때는 버퍼(buffer)라는 임시 메모리 공간을 사용하게 된다.

  • 버퍼를 사용하지 않는 경우, 키 입력시마다 프로그램에 바로 전달된다.
  • 버퍼를 사용할 경우, 키 입력을 버퍼에 전달 및 저장하고, 개행문자가 오거나 버퍼가 가득 찬 경우 버퍼를 프로그램에 전달한다.

# 문자열 함수

문자열 함수는 <stdio.h> 헤더 파일과 <string.h> 헤더 파일이 담당한다.

1. <stdio.h> 헤더 파일에는 scanf, printf 함수 이외에도 gets_s, puts, fgetc 등 다양한 함수가 존재한다.

  • gets_s : 표준 입력 스트림의 버퍼에서 문자열을 읽는 함수
  • puts :표준 출력에 문자열을 쓰는 함수

--> 두 함수의 원형

char *gets_s(char* _Buffer, rsize_t _Size);
// 성공시 입력된 문자열을 반환, 실패하면 NULL을 반환

int puts(char const *_Buffer);
// 성공시 음수가 아닌 값을 반환, 실패하면 -1을 반환.

 

예제)

#include <stdio.h>

int main()
{
    char buffer[100];

    printf("문자열을 입력하세요. : ");
    gets_s(buffer, sizeof(buffer));    
                                       
    printf("입력한 문자열 :  ");
    puts(buffer);    
 
    return 0;
}

// 실행결과
문자열을 입력하세요. : Hello!
입력한 문자열 :  Hello!

--> gets_s 함수는 첫번째 인수로 버퍼로 사용할 배열, 혹은 포인터를 받고, 두번째 인자로 버퍼의 크기를 넣어줘서 사용한다.

--> puts 함수는 배열, 혹은 포인터에 들어있는 문자열을 화면에 출력한다.

 

2. <string.h> 헤더 파일

  • strlen : 문자열의 길이를 리턴하는 함수
    strlen(문자열 포인터);
    strlen(문자 배열);​
  • strcpy : 문자열을 다른 배열이나, 포인터로 복사하는 함수 (string copy)
    strcpy(대상 문자열, 원본 문자열)
  • strcat : 문자열을 서로 붙이는데 사용하는 함수 (string concatenate)
    strcat(대상문자열, 붙일문자열);​
  • strcmp : 두 문자열이 같은지 비교하는 함수 (string compare)
    - ASCII 코드 기준으로 문자열2가 더 크면 -1 반환, 같으면 0 반환, 문자열1이 더 크면 1을 반환한다.
    strcmp(문자열1, 문자열2);​

 

'C > 문법' 카테고리의 다른 글

[C] 함수 만들기  (0) 2021.09.23
[C] 헤더파일  (0) 2021.09.23
[C] 함수 포인터  (0) 2021.09.14
[C] 2차원 배열 + 이중포인터  (0) 2021.09.13
[C] 이중포인터  (0) 2021.09.10
'C/문법' 카테고리의 다른 글
  • [C] 함수 만들기
  • [C] 헤더파일
  • [C] 함수 포인터
  • [C] 2차원 배열 + 이중포인터
Rix
Rix
  • Rix
    The Nights
    Rix
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (106)
      • 알고리즘 (5)
        • Python (1)
        • C++ (6)
      • CS (0)
      • Backend (20)
        • 로드맵 (1)
        • Java (17)
        • Spring (2)
      • TIL (0)
      • Flutter (13)
      • Python (7)
        • 디스코드 챗봇 (1)
        • 문법 (1)
        • 머신러닝 (2)
      • C (28)
        • 문법 (19)
      • ETC (2)
        • Git (2)
        • GitHub (1)
        • Hacking (4)
      • Game (13)
        • Unity (13)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    미로찾기
    C
    공백포함
    코뮤니티
    절대강좌유니티
    1546
    콘솔창
    문자열 함수
    이중포인터
    백준
    c언어
    nullsafety
    Unity
    2차원 배열
    C심화
    이미지분류
    1152
    Failed to create GICache
    TensorFlow
    DART
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
Rix
[C] 문자열 함수
상단으로

티스토리툴바