4
A
답변
0
뭘하고 싶은지 모르겠지만 std::array<char, 100> buffer;
을 써야합니다.
당신은 다음과 같은 문자열을 얻을 수 있습니다 :
std::string str(std::begin(buffer),std::end(buffer);
2
당신이
std::string s;
s.reserve(100);
같은 string::reserve 방법을 사용할 수 있습니다하지만 당신은 더 많은 문자를 추가 할 수 있기 때문에 이것은 크기가 고정되어 있지 예를 들어 string :: push_back이있는 문자열.
3
C++ 17에는 과 동일한 (변경 불가능한) 인터페이스를 제공하는 std::string_view
이 있습니다. 한편
template<std::size_t N>
struct immutable_string
{
using ref = const char (&)[N+1];
constexpr immutable_string(ref s)
: s(s)
{}
constexpr auto begin() const { return (const char*)s; }
constexpr auto end() const { return begin() + size(); }
constexpr std::size_t size() const { return N; }
constexpr ref c_str() const { return s; }
ref s;
friend std::ostream& operator<<(std::ostream& os, immutable_string s)
{
return os.write(s.c_str(), s.size());
}
};
template<std::size_t NL, std::size_t NR>
std::string operator+(immutable_string<NL> l, immutable_string<NR> r)
{
std::string result;
result.reserve(l.size() + r.size());
result.assign(l.begin(), l.end());
result.insert(result.end(), r.begin(), r.end());
return result;
}
template<std::size_t N>
auto make_immutable_string(const char (&s) [N])
{
return immutable_string<N-1>(s);
}
int main()
{
auto x = make_immutable_string("hello, world");
std::cout << x << std::endl;
auto a = make_immutable_string("foo");
auto b = make_immutable_string("bar");
auto c = a + b;
std::cout << c << std::endl;
}
0
당신은 C에서와 정확히 일을의 C++ 방법입니다 std::array
을 사용할 수 있습니다 .
std::array<char, 100> buffer;
당신이 스택 오버 플로우에 대해 걱정하는 경우
때문에 큰 버퍼 크기 (같은, 예를 들어, 그100
독립에
1'000'000
위한 경우) 동적 대신을 할당 할 수 있습니다합니다. 사용자 인터페이스 이후
std::unique_ptr<std::array<char, 100>> buffer = std::make_unique<std::array<char, 100>>();
는 피연산자로 char *
소요되며,이 객체는 런타임에 크기를 쿼리 할 수 있습니다,이 충분해야한다.
관련 문제
- 1. 고정 된 버튼 크기
- 2. 고정 된 크기
- 3. 표준 C에서 고정 크기 정수 typedef 선언
- 4. XAML에서 고정 된 이미지 크기
- 5. 안드로이드 레이아웃 고정 된 크기
- 6. C에서 고정 포인터를 반환
- 7. 고정 이미지 크기
- 8. 고정 크기 열
- 9. 고정 크기 어레이
- 10. 고정 된 HTML 페이지 높이 크기 설정
- 11. 고정 된 헤더의 화면 크기 계산
- 12. IE8에서 열이 확장 된 고정 크기 표
- 13. ViewBox에서 고정 된 글꼴 크기 WPF
- 14. 고정 된 탐색 메뉴 크기 조정
- 15. 고정 된 div로 이미지 크기 줄이기
- 16. LabView : 고정 크기 배열
- 17. 고정 된 (고정 된) 요소의 위치 지정
- 18. Doctrine ArrayCollection 고정 크기
- 19. Three.js의 고정 텍스처 크기
- 20. 고정 크기 데이터베이스 - 이점?
- 21. android scrollableTabs 고정 크기
- 22. JQuery UI 크기 조정 고정 크기 표
- 23. 고정 크기 문자 인코딩
- 24. FullCalendar의 고정 열 크기
- 25. 고정 크기 배열
- 26. css, 고정 크기
- 27. 일치 고정 크기 배열
- 28. 메뉴의 고정 버튼 크기
- 29. 레이아웃 크기 고정
- 30. HTML5 고정 크기 페이지
고정 크기 문자열로 어떤 문제를 해결하고 싶습니까? –
C에서 똑같은 일을 할 수있는 옵션이 있습니다. Youncould so array. 또는 문자열에 100 자 이상을 넣을 수 없습니다. 니가하려는 일에 달렸어. –
http://stackoverflow.com/questions/1571901/c-fixed-length-string-class – Shahid