cpp
///头文件:
#include<sstream>
#include<cstdio>
#include<string>
1、stringstream
cpp
std::stringstream ss;
std::string Name="li";
ss<<"Name="<<Name;
std::string str=ss.str();
std::cout<<str<<std::endl;
// 或者使用 std::to_string
std::string str = "数字: " + std::to_string(num);
2、sprintf
cpp
int num = 20;
char buffer[100];
sprintf(buffer, "Num=%d", num);
std::cout << buffer << std::endl;
char Na[] = "ZHANG";
sprintf(buffer, "NAME:%s,AGE:%d", Na, num);
std::cout << buffer << std::endl;
double price = 100.99;
sprintf(buffer, "Price=%.2f", price);
std::cout << buffer << std::endl;
int value = 255;
sprintf(buffer, "shi:%d,shiliu:0x%X,ba:0%o", value, value, value);
std::cout << buffer << std::endl;
char buffer[50];
char* name = "Tom";
char* country = "China";
sprintf(buffer, "%s lives in %s", name, country); // 连接字符串
printf("Connected string: %s\n", buffer); // 输出:"Tom lives in China"
为防止缓冲区越界,可以采用snprintf函数
cpp
snprintf(buffer, sizeof(buffer), "Num:%d,Str:%s", 123, "zxc");
std::cout << buffer << std::endl;
cpp
char buffer[10];
int len = snprintf(buffer, sizeof(buffer), "Hello, World!");
printf("String: %s\n", buffer); // 输出:"Hello, W"(被截断)
printf("Intended length: %d\n", len); // 输出:13(实际需要的长度)