string문자열 시작하기


비고

이 절에서는 문자열이 무엇인지, 개발자가 왜 문자열을 사용하려고하는지에 대한 개요를 제공합니다.

또한 문자열 내에있는 큰 주제를 언급하고 관련 주제에 링크해야합니다. 문자열에 대한 문서가 새로운 것이므로 관련 주제의 초기 버전을 만들어야 할 수도 있습니다.

버전

번역 출시일
ASCII 문자열 7 비트 1963-06-17
UTF-8 8 비트 기본값, 서로 게이트를 통한 가변 길이 1992-09-30
UCS-2 대리모없이 UTF-16처럼 16 비트는 Microsoft Windows NT를 사용했습니다. 1993-07-23
UTF-16 16 비트 기본값, 서로 게이트를 통한 가변 길이 1996-07-31

문자열

문자열은 일련의 문자 리터럴입니다. 지금까지 문자열은 모든 현대적인 프로그래밍 언어 (1)에 의해 지원되지만 문자열을 분류하는 방법에 대한 언어 디자이너들 사이에 합의가 없다. 프로그래밍 언어 디자인에 관해서는 고려해야 할 두 가지 주요 관심사가 있습니다.

  1. 문자열을 원시 또는 합성 값으로 처리해야합니까?
  2. 언어 자체에서 제공해야하는 문자열 연산은 무엇입니까? 2

문자열을 원시 값으로 지정하면 언어에서 제공하는 문자열 연산이 모두 내장되어 있습니다. 언어 자체에서는 정의 할 수 없습니다. 이것은 컴파일러 레벨에서 - 특히 메모리 레이아웃과 소위 문자열 풀 (string pool)을 사용하는 문자열의 재사용과 관련하여 특정 최적화를 허용합니다. 트레이드 오프는 문자열 연산에 대한 대체를 사용할 수 없다는 것과 일반적인 함수 호출을 사용하여 이러한 함수를 호출해야한다는 점, 내장 연산을 사용하는 구문은 대개 분명히 다르다는 점입니다. 결과적으로 더 효과적인 알고리즘이 발견되면 어떤 문자열 라이브러리를 사용하고 있는지 간단하게 변경할 수 없습니다. Boyer-Moore 문자열 검색 알고리즘이 개발되기 전에 핵심 기능 집합의 일부로 하위 문자열 검색이 수행되는 고안된 예입니다.

반대로 문자열을 문자 배열과 같은 복합 값으로 정의하면 모든 일반적인 배열 연산이 문자열에 자동으로 적용됩니다. 그러나 이로 인해 언어 내의 모든 문자열이 고정 길이가됩니다.

궁극적으로 또 다른 접근법은 문자열을 문자 목록으로 표현하는 것입니다. 배열의 경우처럼 표현이 모든 목록 작업을 상속받을 수 있습니다.

1 Piet 같은 더 비밀스러운 것을 저장하십시오.
2 언어는 일반적으로 문자열 비교, 주로 평등, 다른 문자열과 문자열 연결, 단일 문자 및 하위 문자열 대체 및 문자열의 사전 식 정렬을 제공합니다. 3 보통