programing

지정된 문자 수로 문자열 생성

luckcodes 2022. 8. 8. 21:04

지정된 문자 수로 문자열 생성

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