Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 문자열 기초: 선언, 초기화부터 주요 함수까지

C 언어에서 문자열(string)은 널(null) 문자(\0)로 끝나는 문자들의 배열입니다. 여기서 중요한 점은 널 문자를 사용자가 직접 입력하는 것이 아니라, 컴파일러가 문자열의 끝에 자동으로 추가한다는 것입니다.

배열과 문자열의 차이

배열과 문자열의 차이는 널 문자의 유무입니다. 일반적인 배열의 경우 컴파일러가 마지막에 널 문자를 붙이지 않지만, 문자열은 컴파일러가 자동으로 널 문자를 추가하여 문자열의 끝을 표시합니다.

문자열 선언 방법

C 언어에서 문자열을 선언하는 기본 문법은 다음과 같습니다.

char myStr[size];

각 구성 요소의 의미는 다음과 같습니다.

  • myStr: 문자열의 이름
  • size: 문자열의 크기를 지정

문자열 초기화 방법

C 언어에서 문자열은 아래 두 가지 방식으로 초기화할 수 있습니다.

char myStr[size] = "string";
char myStr[size] = { 's', 't', 'r', 'i', 'n', 'g', '\0' };

첫 번째 방법은 문자열 상수를 그대로 대입하는 방식이며, 두 번째 방법은 각 문자를 개별적으로 나열하고 마지막에 널 문자를 명시하는 방식입니다.

C 언어의 주요 문자열 함수

C 언어는 <string.h> 헤더 파일을 통해 다양한 문자열 처리 함수를 제공합니다.

함수설명
strcpy(s1, s2)s2 문자열을 s1에 복사합니다.
strcat(s1, s2)s2를 s1의 끝에 이어 붙입니다(연결).
strlen(s1)s1의 길이를 반환합니다.
strcmp(s1, s2)s1과 s2가 같으면 0을 반환합니다. s1의 ASCII 값이 s2보다 크면 0보다 큰 값을, 작으면 0보다 작은 값을 반환합니다.
strchr(s1, ch)s1에서 문자 ch가 처음 나타나는 위치의 포인터를 반환합니다.
strstr(s1, s2)s1에서 문자열 s2가 처음 나타나는 위치의 포인터를 반환합니다.

문자열 함수 활용 예제

다음 예제는 위에서 소개한 문자열 함수들을 실제로 사용하는 방법을 보여줍니다.

#include <stdio.h>
#include <string.h>
int main () {
    char s1[10] = "Hello";
    char s2[10] = "World";
    int len, com ;
    strcpy(s1, s2);
    printf("Strings s1 and s2 : %s\t%s\n", s1, s2 );
    strcat( s1, s2);
    printf("String concatenation: %s\n", s1 );
    len = strlen(s1);
    printf("Length of string s1 : %d\n", len );
    com = strcmp(s1,s2);
    printf("Comparison of strings s1 and s2 : %d\n", com );
    return 0;
}

실행 결과

Strings s1 and s2 : WorldWorld
String concatenation: WorldWorld
Length of string s1 : 10
Comparison of strings s1 and s2 : 87

결과 해석

  • strcpy(s1, s2) 실행 후 s1은 "Hello"에서 "World"로 변경되었습니다.
  • strcat(s1, s2) 실행 후 s1은 "World"와 "World"가 연결된 "WorldWorld"가 되었습니다.
  • strlen(s1)은 연결된 문자열의 길이 10을 반환했습니다.
  • strcmp(s1, s2)는 'W'('W' = 87)와 '\0'(0)의 ASCII 값 차이인 87을 반환했습니다.