두 QStrings을 연결 : +
내가 (즉, directory
이 :/karim/pic5.jpg
을해야한다) 문자열과 정수를 연결하는 것을 의미합니다는 ++ Qt를 사용하여 내가 C에서 이런 일을하고 싶지 정수
int i = 5;
QString directory = ":/karim/pic" + i + ".jpg";
. 어떻게해야합니까?
두 QStrings을 연결 : +
내가 (즉, directory
이 :/karim/pic5.jpg
을해야한다) 문자열과 정수를 연결하는 것을 의미합니다는 ++ Qt를 사용하여 내가 C에서 이런 일을하고 싶지 정수
int i = 5;
QString directory = ":/karim/pic" + i + ".jpg";
. 어떻게해야합니까?
Qt의 관용구는 QString의 arg()
기능입니다.
QString directory = QString(":/karim/pic%1.jpg").arg(i);
컴파일 타임에 생성되는'QStringLiteral (":/karim/pic % 1.jpg"). arg (i);'가 약간 낫습니다. https://woboq.com/blog/qstringliteral.html – Robin
#include <sstream>
#include <string>
int i = 5;
std::stringstream s;
s << ":/karim/pic" << i << ".jpg";
std::string directory = s.str();
나는's.str()'이 아니라's.string()' –
이 맞다고 생각한다. –
내 편집 녀석을 확인하십시오 –
: 이것은 매우 유사한 한 줄이 C++11을 사용으로 수행 할 수 있습니다
(EDIT.이 QString을 언급 편집하기 전에 질문에 대한 답변입니다 QString를 들어, the newer answer 참조)
int i = 5;
std::string directory = ":/karim/pic" + std::to_string(i) + ".jpg";
테스트 : 오래된 컴파일러와 https://ideone.com/jIAxE
, 그것은 Boost로 대체 할 수 있습니다 :
int i = 5;
std::string directory = ":/karim/pic" + boost::lexical_cast<std::string>(i) + ".jpg";
테스트 : https://ideone.com/LFtt7
그러나 문자열 스트림 객체를 함께 할 수있는 고전적인 방법.
int i = 5;
std::ostringstream oss;
oss << ":/karim/pic" << i << ".jpg";
std::string directory = oss.str();
테스트 :
흥미 롭습니다. 나는이 시간에'operator + (const char *, const std :: string &)'에 과부하가 있다는 것을 전혀 몰랐다. 그래서 항상 문자열 생성자에서 내 리터럴을 감쌀 수밖에 없었다. –
내 편집자를 확인하십시오 –
@ 카림 M. 엘 전화 : 오, QString 이후 (편집 후), 헥사의 코멘트로 이동하십시오. 다행스럽게도 답변이 게시 될 수 있도록 다시 열리게되기를 바랍니다. – Cubbi
https://ideone.com/6QVPv는 이제 stringstream 봐 유무 : 이런 것들에 대한
http://cplusplus.com/reference/iostream/stringstream/
ostringstream oss(ostringstream::out);
oss << ":/karim/pic";
oss << i
oss << ".jpg";
cout << oss.str();
무엇을 포함해야합니까? –
내 편집자를 확인하십시오 –
C++ CONCATENATE 문자열과 INT http://stackoverflow.com/questions/191757/c-concatenate-string-and-int 거기에 그것을 할 수있는 8 가지 방법에 답이 있습니다. – Vache
태그는 그가 'qt'에 대한 대답을 원한다는 것을 나타냅니다. "duplicate"의 대답은 그것을 제공하지 않습니다. –
내 편집자를 확인하십시오 –