핵심 정리

문자열 함수

다음은 문자열 함수의 매개변수, 반환값과 설명을 정리한 표입니다.

문자열 함수
함수 헤더 파일 설명
strlen(문자열포인터);
strlen(문자배열);
string.h 문자열의 길이를 구합니다(NULL은 포함하지 않음).
strcmp(문자열1, 문자열2); string.h 문자열1과 문자열2를 비교합니다(Windows).
  • -1: ASCII 코드 기준으로 문자열2가 클 때
  • 0: ASCII 코드 기준으로 두 문자열이 같을 때
  • 1: ASCII 코드 기존으로 문자열1이 클 때
    앞에 것이 크면 1, 뒤에 것이 크면 -1입니다.

리눅스와 OS X에서는 문자열1의 ASCII 코드값에서 문자열2의 ASCII 코드값을 뺀 결과를 반환합니다.
  • 반환값이 양수가 나오면 문자열1이 크고, 음수가 나오면 문자열2가 큼
  • ASCII 코드 기준으로 두 문자열이 같으면 0
strcpy(대상문자열, 원본문자열); string.h 문자열을 복사합니다.
strcat(최종문자열, 붙일문자열); string.h 문자열을 붙입니다.
sprintf(배열, 서식, 값);
sprintf(배열, 서식, 값1, 값2, ...);
sprintf(문자열포인터, 서식, 값);
sprintf(문자열포인터, 서식, 값1, 값2, ...);
stdio.h 서식을 지정하여 문자열을 생성합니다.





strchr(문자열, 검색할문자); string.h 문자열 안에서 문자로 검색합니다. 문자를 찾았으면
해당 문자부터 NULL 바로 앞까지의 문자열이 나옵니다
(해당 문자의 포인터 반환).
strrchr(문자열, 검색할문자); string.h 문자열의 뒤에서부터 문자로 검색합니다. 문자를
찾았으면 해당 문자부터 NULL 바로 앞까지의
문자열이 나옵니다(해당 문자의 포인터 반환).
strstr(대상문자열, 검색할문자열); string.h 문자열 안에서 문자열로 검색합니다. 문자열을
찾았으면 해당 문자열부터 NULL 바로 앞까지의
문자열이 나옵니다(해당 문자열의 포인터 반환).
strtok(대상문자열, 기준문자); string.h 문자를 기준으로 문자열을 자릅니다. 자른
문자열을 한 번에 얻을 수 없으므로 while
계속 반복 사용해야 합니다. 그리고 문자열을
자른 부분은 NULL로 바뀝니다.
atoi(문자열); stdlib.h 문자열을 정수로 변환합니다.
atof(문자열); stdlib.h 문자열을 실수로 변환합니다.
strtol(문자열, 끝포인터, 진법); stdlib.h 특정 진법으로 표기된 문자열을 정수로 변환
합니다. 정수 여러 개가 들어있는 문자열을
변환할 수 있습니다.
strtof(문자열, 끝포인터); stdlib.h 문자열을 실수로 변환합니다. 실수 여러 개가
들어있는 문자열을 변환할 수 있습니다.
sprintf(문자열,"%d", 정수);
sprintf(문자열,"%x", 정수);
sprintf(문자열,"%X", 정수);
stdio.h 정수를 문자열로 변환합니다.
  • %d: 10진수
  • %x: 16진수 소문자
  • %X: 16진수 대문자
sprintf(문자열,"%f", 실수); stdio.h 실수를 문자열로 변환합니다.

문자열 함수와 보안 경고

Visual Studio에서 scanf, strcpy, strcat, sprintf, strtok 등의 함수를 사용했을 때 보안 경고로 인한 컴파일 에러가 발생한다면 stdio.h, string.h 등의 헤더 파일 위에 #define _CRT_SECURE_NO_WARNINGS를 넣어줍니다.

#define _CRT_SECURE_NO_WARNINGS    // 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>
#include <string.h>