2014-11-29 3 views
-6

문자열을 만들 때 문자열의 길이가 상수인지 여부문자열의 길이를 변경하는 방법

어떻게 문자열의 길이를 변경할 수 있습니까?

나는 s.length() 문자열의 길이를 반환하지만 그것을 변경하는 방법을 모르는 것을 알고 있습니다.

감사합니다.

+1

"변경"은 무엇을 의미합니까? 뭔가 잘라 버리거나 무언가를 삽입하고 싶니? (둘 다 할 수 있습니다.) –

+1

질문의 형식이 명확하지 않습니다. 마음의 목표로 문자열의 길이를 변경하고 싶습니까? –

+1

왜 문자열의 길이를 변경 하시겠습니까 – ravi

답변

3

"문자열이 생성 될 때 문자열의 길이가 상수인지 여부"?

없음은 std::string 클래스는 동적 기초 char 어레이에 의해 점유 된 메모리를 관리하기 위해 설계된다 (따라서 길이가 변화하는).

"문자열 길이를 어떻게 바꿀 수 있습니까?"

std::string 인스턴스의 length() 값을 변경하는 방법에는 여러 가지가 있습니다. 하나는 예를 들어 std::string::resize() 기능입니다.

+1

똑똑한 대답 ... 그러나 OP가 그렇게하기까지는 이유가 정당화 될 때까지는 부적합합니다. – ravi

+1

@ravi 문자열 길이를 변경해야하는 이유는 많습니다. OP는 무엇이든 _justify_ 할 필요 없다. –

+1

@CaptainObvlious OP가 문자열의 시작 부분에서 문자를 제거하여 길이를 변경하려는 경우 어떻게됩니까? 이것은 이것을 고려한 것입니까? – ravi

1

하면 문자열이 제로 ('\ 0')가 추가된다이 경우 예

std::string s("Hello"); 

s.resize(10); 

대한 클래스 std::string

대한 과부하 resize 방법을 사용할 수있다. 또는 문자열이 공백이 추가되는 경우

std::string s("Hello"); 

s.resize(10, ' '); 

.

또한 append 메소드를 사용할 수 있습니다. 예를 들어

std::string s("Hello"); 

s.append(10 - s.size(), char()); 

또는

std::string s("Hello"); 

s.append(10 - s.size(), ' '); 

는이 코드 조각은 이전 코드 조각에 해당합니다.

는 상수 문자열을 만듭니다이라면 참으로 그 길이가 일정 할 것이라는 점을 고려. :) ​​예를 들어

const std::string s("Hello"); 

문자열의 길이는 5

당신은 문자를 의미하는 경우 C++에서 배열은 상수식이므로 길이를 변경할 수 없습니다. 일부 컴파일러에는 몇 가지 언어 확장 기능이 있지만

가변 길이 배열을 사용할 수 있습니다.

관련 문제