2012-09-27 70 views
2

我有這樣的代碼:如何將INT添加到在C的char []/C++

int i = 123; 
char myString[100]; 
strcpy(myString, "my text"); 

,以及如何我想「我的文字」之後添加123。如何在c/C++中做到這一點?

在端myString是前人的精力my test123

+3

這是C還是C++? – chris

+2

C和C++是兩種不同的語言。他們用C來做這件事的方式與C++中的做法完全不同。 –

+0

如果C++,看看這個:http://stackoverflow.com/questions/5590381/easiest-way-to-convert-int-to-string-in-c – chris

回答

5

(爲了補充Luchian的回答)

在C:

char myString[128]; 
int i = 123; 
snprintf(myString, sizeof(myString), "My Text %d", i); 
+2

注意:這隻適用於'myString'是一個數組。如果它是一個指針,您必須跟蹤指向緩衝區的長度並將其作爲「snprintf」的第二個參數傳入,因爲「sizeof(pointer)」不是您想要的(它通常是4或8字節)。 –

+0

@AdamRosenfield我意識到這一點。看到編輯的答案:) – 2012-09-27 20:04:58

+0

是的,我只是補充澄清,以防有人來了,並決定複製+粘貼代碼,但沒有完全理解它。 –

8

在C++:

std::stringstream ss; 
ss << "my text" << i; 
std::string resultingString = ss.str(); 

有沒有這樣的東西作爲C/C++

4

假設了mystring是足夠大的,這是在本例中:

sprintf(myString, "my text%d", 123); 
+1

對不起,man,但-1不使用snprintf()。你應該真的很安全。 – 2012-09-27 19:56:58

+1

Heh,H2CO3是正確的,使用他的形式;-) –

7

在C++ 11:

std::string result = "my text" + std::to_string(i); 
0

機智h C++中的Qt QString對象:

std::cout << QString("my text %1").arg(123456);