본문 바로가기

old drawer/C, C++, MFC

[C/C++] 문자열 컨트롤 함수 : strlen, strcpy, strcat, strstr, strchr, strtok, atoi 등

 

strlen (String Lenth) : 문자열의 길이를 리턴하는 함수.


#include <string.h>

size_t strlen(const char* s);

문자열의 길이 정보 반환




strcpy (String Copy), strncpy (String Number Copy) : 문자열 복사 함수.


#include <string.h>

char* strcpy(char* dest, const char* src);

char* strncpy(char* dest, const char* src, size_t n);

첫 번째 매개변수에 전달된 주소 값(dest에 전달된 값) 반환.




strcat (String Concatenate), strncat (String Number Concatenate) : NULL문자 뒤에 문자열을 추가하는 함수.


#include <string.h>

char* strcat(char* dest, const char* src);

char* strncat(char* dest, const char* src, size_t n);

첫 번째 매개변수에 전달된 주소 값(dest에 전달된 값) 반환.



: 만약 abcd\0 이 있는데 efg\0를 붙인다면, \0를 없애고 그자리부터 붙여짐. -> abcdefg\0



strcmp (String Compare), strncmp (String Number Compare) : 문자열의 비교 함수.


#include <string.h>

char* strcmp(char* dest, const char* src);

char* strncmp(char* dest, const char* src, size_t n);

두 문자열이 동일하면 0, 동일하지 않으면 0이 아닌 값 반환 (더 정확히 말하자면, 음수를 리턴하면 그것은 앞서는 문자열이고, 양수를 리턴하면 그것은 뒤서는 문자열이다.)

앞서거나 뒤선다는 것은 사전편찬순으로 말함.


: strncmp함수는 비교하는 문자열의 길이가 세 번째 전달 인자의 값보다 크면, 세 번째 전달인자의 길이만큼만 부분 비교를 한다.




strchr (String Character), strrchar : 문자가 언제 처음 또는 마지막에 등장하는지 알아내는 함수.


#include <string.h>

char* strchr(const char* s, int c);

char* strrchr(const char* s, int c);

문자를 찾을 시 해당 문자의 포인터를, 못 찾을 시 NULL 포인터를 반환.


: strchr 와 strrchr의 차이점

: strrchr은 문자열의 끝에서부터 찾기 시작한다.





strstr (String String) : 문자열 안에 문자열 검색


#include <string.h>

char* strstr(const char* src, const char* sub);

문자열을 찾을 시 해당 문자열의 시작 주소를, 못 찾을 시 NULL 포인터를 반환


: 문자열 안에 특정 문자열이 존재하는지 확인하고 싶을 때 사용하는 함수.




strtok (String Token) : 문자열을 토큰 기준으로 나누는 경우에 활용하는 함수.


#include <stdio.h>

char* strtok(char* str, const char* set);

다음 번 토큰의 주소 값을 반환하며, 반환할 토큰이 없다면 NULL 포인터 반환.



※ strtok 함수를 활용할때의 주의점

: 문자열을 변경시킨다. 때문에 strtok 함수의 호출 이후에도 그 내용이 보전되어야 하는 문자열이라면, strtok함수를 호출하기 이전에 원본을 복사해 두는 것이 좋다.



atoi, atol, atoll, atof : 문자열에 저장되어 있는 숫자 정보는 실제 숫자로 변환하는 함수.


#include <stdlib.h>

int atoi(const char* str);           //int형 데이터로 변환.

long atoi(const char* str);        //long형 데이터로 변환.

long long atoi(const char* str); //long long형 데이터로 변환.

double atoi(const char* str);    //double형 데이터로 변환.