> 백엔드 개발 > C++ > C에서 std::string과 int를 효율적으로 연결하는 방법은 무엇입니까?

C에서 std::string과 int를 효율적으로 연결하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-03 16:42:40
원래의
858명이 탐색했습니다.

How to Efficiently Concatenate a std::string and an int in C  ?

std::string과 int를 연결

std::string과 int를 결합하여 단일 문자열을 형성하는 것은 다음과 같습니다. 겉으로는 간단해 보이는 작업이지만 몇 가지 어려움이 있을 수 있습니다. 주어진 예를 살펴보겠습니다.

std::string name = "John";
int age = 21;
로그인 후 복사

이러한 요소를 "John21"로 연결하기 위해 여러 접근 방식을 사용할 수 있습니다.

Boost 사용

사용 Boost의 lexical_cast를 사용하면 int를 문자열로 변환하고 추가할 수 있습니다. it:

#include <boost/lexical_cast.hpp>

std::string result = name + boost::lexical_cast<std::string>(age);
로그인 후 복사

C 11

C 11에서 std::to_string 함수는 int를 문자열로 변환하는 편리한 방법을 제공합니다.

std::string result = name + std::to_string(age);
로그인 후 복사

함께 FastFormat

FastFormat은 문자열 연결을 위한 Format 및 Write 메서드를 모두 제공합니다.

#include <fastformat/format.hpp>
fastformat::fmt(result, "{0}{1}", name, age);
fastformat::write(result, name, age);
로그인 후 복사

{fmt} 라이브러리 사용

{ fmt} 라이브러리는 문자열에 대한 간결한 구문을 제공합니다. 형식 지정:

#include <fmt/core.h>
std::string result = fmt::format("{}{}", name, age);
로그인 후 복사

IOStream 사용

IO 스트림을 사용하는 것은 더 장황하지만 표준 C 접근 방식입니다.

#include <sstream>

std::stringstream sstm;
sstm << name << age;
std::string result = sstm.str();
로그인 후 복사

이토아와 함께

이토아 (Integer-to-String)은 int를 문자열로 변환하는 비표준 확장입니다.

#include <stdlib.h>
char numstr[21]; // Ensure sufficient buffer size
std::string result = name + itoa(age, numstr, 10);
로그인 후 복사

sprintf 사용

Sprintf는 또 다른 비표준입니다. int를 문자열로 형식화하는 확장 프로그램:

#include <cstdio>
char numstr[21]; // Ensure sufficient buffer size
sprintf(numstr, "%d", age);
std::string result = name + numstr;
로그인 후 복사

STLSoft의 정수_to_string

STLSoft는 int를 문자열로 변환하는 특수 함수를 제공합니다.

#include <stlsoft/string_algo.h>
char numstr[21]; // Ensure sufficient buffer size
std::string result = name + stlsoft::integer_to_string(numstr, 21, age);
로그인 후 복사

STLSoft의 Winstl::int_to_string

이 기능은 Windows에만 적용되어 효율적이고 안전한 변환:

#include <stlsoft/winstl/int_to_string.hpp>
std::string result = name + winstl::int_to_string(age);
로그인 후 복사

Poco NumberFormatter 사용

Poco의 NumberFormatter는 숫자를 문자열 형식으로 지정하는 데 사용할 수 있습니다.

#include <Poco/NumberFormatter.h>
std::string result = name + Poco::NumberFormatter().format(age);
로그인 후 복사

요약하자면, 선택한 접근 방식은 특정 요구 사항 및 플랫폼에 따라 달라질 수 있습니다. std::string과 int를 연결하는 데 가장 적합한 솔루션을 선택할 때 성능, 안전성 및 이식성을 고려하십시오.

위 내용은 C에서 std::string과 int를 효율적으로 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿