지정된 문자 수로 문자열 생성
c++로 초기화할 때 256자로 하는 문자열을 작성하는 방법이 있습니까?
내 과제의 일부는 내가 "1"을 요구해.256자로 이루어진 문자열을 만듭니다.이름 반복 사용"
루프를 사용하는 것 외에 어떻게 해야 할지 잘 모르겠지만, 더 쉬운 방법이 있을 것 같습니다.
의 컨스트럭터 참조를 보면 완전한 문자열을 반복하는 쉬운 방법이 없음을 알 수 있습니다.1개의 캐릭터에 대해서(2)
다음과 같습니다.
std::string s(5, 'a'); // s == "aaaaa"
문자열 반복을 생성하려면 몇 가지 해결 방법이 필요합니다.예를 들어, 문자열을 다음과 같이 채우는 것만으로 이 사후 구성을 쉽게 수행할 수 있습니다.std::generate
(알고리즘을 즐기면서)
#include <string>
#include <algorithm>
// ...
std::string pattern("Xeo ");
auto pattern_it = pattern.begin();
std::string s(256, '\0');
std::generate(s.begin(), s.end(),
[&]() -> char {
if(pattern_it == pattern.end())
pattern_it = pattern.begin();
return *pattern_it++; // return current value and increment
});
매우 긴 문자열이 필요한 경우 루프 반복 횟수를 2배로 줄일 수 있습니다.
#include <string>
using std::string;
string repeatToLength ( unsigned len, string s ) {
string r, si = s;
// add all the whole multiples of s.
for ( unsigned q = len / s.size(); q > 0; q >>= 1 ) {
if ( q & 1 ) r += si; // add si to r if the low bit of q is 1
si += si; // double si
}
r += s.substr ( 0, len - r.size() ); // add any remainder
return r;
}
const string myName = "Blivit";
int numLeftOver = 256 % myName.length();
string Names;
for ( int Index = 0; Index < (256 / myName.length() ); ++Index ) {
Names += myName;
}
Names += myName.substr(0, numLeftOver);
이것은 문자열을 생성하는 경우입니다.이걸 할 수 있는 더 짧은 방법이 있을 거라고 확신해요
http://www.cplusplus.com/reference/string/string/
제가 알기론 256개의 요소만 예약하길 원하신다고 합니다.
컨스트럭터가 없기 때문에 초기화 시 capacity()를 설정할 수 없습니다.초기화 후에 .reserve를 사용하는 것이 좋습니다.reserve()에 주의해 주세요.
이 함수에 대한 호출 후에 발생하는 용량이 반드시 res_arg와 같을 필요는 없지만 res_arg보다 크거나 같을 수 있음을 알 수 있지만, 따라서 축소 요청은 특정 라이브러리 i에서 할당된 공간을 실제로 축소하거나 축소하지 않을 수 있습니다.보충.
다른 타입이 필요하신가요?
사용하지 않고 문자열을 채우는 경우:
http://en.cppreference.com/w/cpp/string/basic_string/basic_string 두 번째.
정보가 부족해서 제대로 말할 수 없다.말씀하신 대로라면, 텍스트 에디터를 사용하여 문자열 256을 만들고 이름을 반복하는 것이 유효한 것 같습니다.
std::string name =
"Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan "
"Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan "
"Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan "
"Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan Zan ";
다 했어요.
언급URL : https://stackoverflow.com/questions/12483406/create-string-with-specified-number-of-characters
'programing' 카테고리의 다른 글
IntelliJ - Java 프로젝트/모듈을 Maven 프로젝트/모듈로 변환 (0) | 2022.08.08 |
---|---|
JS 파일에서 Nuxt 프로젝트의 Vuex 스토어 액세스 (0) | 2022.08.08 |
vue.displaces 구성 api 및 sfc를 사용하여 vuex의 어레이 상태 변경 감시 (0) | 2022.08.07 |
고유한 vuex 저장소 인스턴스를 사용해야 하는 구성 요소를 재사용하는 방법 (0) | 2022.08.07 |
Nuxt/Vue.js - 프로포트를 기반으로 자 컴포넌트에 동적으로 로드 (0) | 2022.08.07 |