본문 바로가기

컴퓨터/C

C 문자열 조작 함수

I. 문자열 길이

1. strlen

#include <string.h>

size_t strlen(const char* s)
//size_t strlen(문자열)

전달되는 문자열의 길이를 반환한다.

II. 문자열 복사

1. strcpy

#include <string.h>

char* strcpy(char* dest, const char* src);
//char* strcpy(배열, 문자열);

복사된 문자열의 포인터를 반환한다.

배열에 문자열을 복사한다. 단, 배열의 길이보다 문자열의 길이가 길면 Overflow가 발생한다. 그래서 잘 안 쓴다.

2. strncpy

#include <string.h>

char* strncpy(char* dest, const char* src, size_t n);
//char* strncpy(배열, 문자열, 문자열 최대 길이);

복사된 문자열의 포인터를 반환한다.

배열에 문자열을 복사한다. 단, 복사하는 문자열의 최대 길이를 미리 정해준다.

III. 문자열 추가

1. strcat

#include <string.h>

char* strcat(char* dest, const char* src);
//char* strcat(문자열1, 문자열2);

추가된 문자열의 포인터를 반환한다.

문자열2를 문자열1의 뒤에 추가한다. 단, 추가할 공간이 부족하면 Overflow가 발생한다. 그래서 잘 안 쓴다.

2. strncat

#include <string.h>

char* strncat(char* dest, const char* src, size_t n);
//char* strncat(문자열1, 문자열2, 문자열2 최대 길이);

추가된 문자열의 포인터를 반환한다.

IV. 문자열 비교

1. strcmp

#include <string.h>

int strcmp(const char* s1, const char* s2);
//int strcmp(문자열1, 문자열2);

문자열1과 문자열2의 비교 결과를 반환한다. 

 

반환 값 의미
양수 문자열1이 문자열2 보다 크다.
0 문자열1과 문자열2가 완전히 같다.
음수 문자열1이 문자열2 보다 작다.

비교의 기준은 첫글자의 아스키코드 값이다. 첫글자가 같으면 순차적으로 다음 글자를 비교한다.

2. strncmp

#include <string.h>

int strncmp(const char* s1, const char* s2, size_t n);
//int strcmp(문자열1, 문자열2, 길이);

문자열1과 문자열2의 처음부터 길이 만큼을 비교한 결과를 반환한다. 

V. 변환

1. 문자열을 숫자로 변환

#include <stdlib.h>

int atoi(char* string); //문자열을 int형 데이터로 변환
//int atoi(문자열);
long atol(char* string); //문자열을 long형 데이터로 변환
//int atol(문자열);
double atof(char* string); //문자열을 double형 데이터로 변환

2. 대소문자 변환

#include <ctypes.h>

int toupper(int c); //소문자를 대문자로
//int toupper(소문자);
int tolower(int c); //대문자를 소문자로
//int tolower(대문자);

'컴퓨터 > C' 카테고리의 다른 글

C typedef  (0) 2022.10.30
C 중첩된 구조체  (0) 2022.10.30
C 입력, 출력  (0) 2022.10.24
C 문자 배열과 문자열  (0) 2022.10.24
C 표준 라이브러리  (0) 2022.10.23