C에서 Null 종료 문자열

Naila Saad Siddiqui 2024년2월15일
  1. C의 문자열
  2. C의 C-Strings 라이브러리 함수
C에서 Null 종료 문자열

이 작은 기사에서는 C 언어에서 문자열을 사용하는 방법에 대해 설명합니다. C 언어의 문자열은 문자 배열을 사용하여 구성됩니다.

C의 문자열

실제로 문자열은 null 문자 \0로 닫히는 문자의 1차원 배열입니다. 그런 다음 문자열을 구성하는 문자 뒤에 null이 따라와서 null로 끝나는 문자열을 형성합니다.

다음 코드 조각은 끝에 null 문자가 있는 문자열을 만듭니다. 끝에 null 문자를 배치하려면 문자열의 원래 단어 수보다 한 문자 더 큰 문자열 길이를 유지해야 합니다.

char test[5] = {'T', 'e', 's', 't', '\0'};

이것은 C에서 문자열을 초기화하는 한 가지 방법입니다. 문자열 크기는 5로 설정되지만 문자열의 문자 수는 4이고 5번째 문자는 null 문자 \0입니다.

다음 코드 세그먼트에서와 같이 문자열을 초기화할 수도 있습니다.

char test[] = "Test";

따라서 문자열 끝에 null 문자를 배치하는 것은 필수가 아닙니다. C 컴파일러는 이를 자동으로 수행합니다.

종료 null 문자는 두 문자열을 인쇄할 때 인쇄되지 않습니다. 아래 예를 살펴보겠습니다.

#include <stdio.h>
int main() {
  char test[5] = {'T', 'e', 's', 't', '\0'};
  char test2[] = "Test";
  printf("Test message: %s\n", test);
  printf("Test message 2: %s\n", test2);
}

위의 코드 세그먼트에서 두 개의 문자열을 생성하고 동일한 데이터로 초기화했습니다. 우리는 명시적으로 null 문자를 첫 번째 문자 끝에 배치했습니다.

동시에 두 번째에 배치되지 않습니다. 이 문자열을 인쇄하면 둘 다 동일한 데이터를 갖게 됩니다.

출력:

C 문자열 데모

C의 C-Strings 라이브러리 함수

null로 끝나는 문자열에 대해 C에서 많은 함수가 지원됩니다. string 클래스에는 다양한 기능이 제공됩니다. 일부는 다음과 같습니다.

아니요 기능 설명
1 strcpy(str1, str2); str1을 str2에 복사합니다.
2 strcat(str1, str2); str1 다음에 str2가 오도록 str2와 str1을 결합합니다.
strlen(str1); str1의 길이를 알려줍니다.
4 strcmp(str1, str2); 세 가지 결과가 있습니다. str1과 str2가 같으면 1; 음수 if str1 < str2; 양수 if str1> str2
5 strchr(str1, c); str1에서 c의 첫 번째 항목에 대한 참조를 반환합니다.
6 strstr(str1, str2); str1에서 str2의 첫 번째 항목에 대한 참조를 반환합니다.

다음 예제에서는 이러한 함수 중 일부를 사용하여 C에서 문자열을 사용하는 방법을 보여줍니다.

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

int main() {
  char mystr1[12] = "First";
  char mystr2[12] = "Second";
  char mystr3[12];
  int length;

  /* copy the first string into the third */
  strcpy(mystr3, mystr1);
  printf("strcpy( mystr3, mystr1) :  %s\n", mystr3);

  /* concatenates first and second */
  strcat(mystr1, mystr2);
  printf("strcat( mystr1, mystr2):   %s\n", mystr1);

  /* length of the first string after concatenation */
  length = strlen(mystr1);
  printf("strlen(mystr1) :  %d\n", length);

  return 0;
}

출력:

문자열 함수 출력

관련 문장 - C String