본문 바로가기

프로그램언어/C언어

c언어 문자열의 길이함수와 문자열과 문자열을 비교하는 함수

c언어 strlen()함수는 문자열의 길이를 구하여 반환하는 함수로 string.h 라이브러리에서 제공하고 있습니다. strlen()함수를 사용하기 위해서는 헤더파일에 #inlcude <string.h>를 추가해야 합니다.

 

strlen() 함수 : 문자열의 길이를 구하여 정수로 반환합니다. 단 널문자는 제외합니다.

함수 원형

    size_t strlen(const char *str);

str : 문자열 포인터
반환값 : 문자열 str의 길이구하여 정수값으로 반환합니다.

소스 코드 실행 결과

#include <stdio.h> 
#include <string.h>

int main( )
{
    char string[] ="Run-Time Library Reference";
    int len;

 

    len = strlen(string);
    printf( "문자열의 길이 : %d\n", len);

 

    return 0;
}

문자열의 길이 : 26

 

 

c언어 strcmp(), stricmp(), strncmp()함수는 문자열를 비교하는 함수로 string.h 라이브러리에서 제공하고 있습니다. strcmp(), stricmp(), strncmp()함수를 사용하기 위해서는 헤더파일에 #inlcude <string.h>를 추가해야 합니다.

 

strcmp() 함수 : 대소문자를 구분하여 두 개의 문자열을 비교하여 1, 0, -1중 하나를 반환합니다.

함수 원형

    int strcmp(const char *string1, const char *string2);

strint1 : 비교할 첫 번째 문자열 포인터 
strint2 : 비교할 두 번째 문자열 포인터
반환 값 : strint1이 strint2보다 큰 경우 1을 반환하고, strint1과 strint2가 같은 경우 0을 반환하고, strint1이 strint2보다 작은 경우 -1을 반환 합니다.

 

 

stricmp() 함수 : 대소문자를 구분하지 않고 두 개의 문자열을 비교하여 1, 0, -1중 하나를 반환합니다.

함수 원형

    int stricmp(const char *string1, const char *string2);

strint1 : 비교할 첫 번째 문자열 포인터
strint2 : 비교할 두 번째 문자열 포인터
반환 값 : strint1이 strint2보다 큰 경우 1을 반환하고, strint1과 strint2가 같은 경우 0을 반환하고, strint1이 strint2보다 작은 경우 -1을 반환 합니다.

 


strncmp() 함수 : 대소문자를 구분하여 지정된 길이만큼 두 개의 문자열을 비교하여 1, 0, -1중 하나를 반환합니다.

함수 원형

    int strncmp(const char *string1, const char *string2, size_t count);

strint1 : 비교할 첫 번째 문자열 포인터 
strint2 : 비교할 두 번째 문자열 포인터
반환 값 : strint1이 strint2보다 큰 경우 1을 반환하고, strint1과 strint2가 같은 경우 0을 반환하고, strint1이 strint2보다 작은 경우 -1을 반환 합니다.

 

 

strnicmp : 대소문자를 구분하지 않고 지정된 길이만큼 두 개의 문자열을 비교 1, 0, -1중 하나를 반환합니다.

함수 원형

    int strnicmp(const char *string1, const char *string2, size_t count);

strint1 : 비교할 첫 번째 문자열 포인터
strint2 : 비교할 두 번째 문자열 포인터
count : 비교할 문자의 수
반환 값 : strint1이 strint2보다 큰 경우 1을 반환하고, strint1과 strint2가 같은 경우 0을 반환하고, strint1이 strint2보다 작은 경우 -1을 반환 합니다.

 

소스 코드 실행 결과

#include <stdio.h>
#include <string.h>

int main()
{
    char str1[30]="C++ Language";
    char str2[30]="API Language";

    int result;

 

    result = strcmp(str1, str2);
    printf("strcmp : %d\n", result);

 

    result = stricmp(str2, str1);
    printf("stricmp : %d\n", result);

 

    result = strncmp(str2, "api language", 3);
    printf("strcmp : %d\n", result);

 

    result = strnicmp(str2, "api language", 3);
    printf("stricmp : %d\n", result);

 

    return 0;
}

strcmp : 1
stricmp : -2
strcmp : -32
stricmp : 0