2012-08-02 6 views
0

이 예제 코드는 유효합니까?문자열을 매개 변수로 사용 (C++)

std::string x ="There are"; 
int butterflies = 5; 
//the following function expects a string passed as a parameter 
number(x + butterflies + "butterflies"); 

여기서 중요한 질문은 + 연산자를 사용하여 문자열의 일부로 정수를 전달할 수 있는지 여부입니다. 하지만 거기에 다른 오류가 있다면 알려 주시기 바랍니다 :)

+2

'이 예제 코드는 유효한가요'- 컴파일러는 무엇을 말해 주는가? – mah

답변

1

안전한 방법은 발췌 한 것입니다 문자열로 정수를 변환합니다. 당신은 그런이 목적을 위해 이제 stringstream을 사용할 수 있습니다

4

C++ 그런 식으로 문자열을 자동으로 변환하지 않습니다. 당신은 stringstream을 만들거나 boost lexical cast와 같은 것을 사용할 필요가 있습니다.

1

아니요, 작동하지 않습니다. C++은 타입이없는 언어가 아닙니다. 따라서 자동으로 문자열을 정수로 변환 할 수 없습니다. strtol, stringstream 등을 사용하십시오.

1

C++보다 C가 더 많지만, 과 같은 문자가 있습니다 (결과는 문자열로 표시됩니다).

#include <string> 
#include <sstream> 

std::string intToString(int x) 
{ 
    std::string ret; 
    std::stringstream ss; 
    ss << x; 
    ss >> ret; 
    return ret; 
} 

현재 예는 위에서 언급 한 이유에 대해 작동하지 않습니다 다음과 같이

2

:

#include <iostream> 
#include <sstream> 
using namespace std; 

int main() 
{ 
    stringstream st; 
    string str; 

    st << 1 << " " << 2 << " " << "And this is string" << endl; 
    str = st.str(); 

    cout << str; 
    return 0; 
} 
관련 문제