如何将int变量的整数值存储在char变量中


int d = names.size() - 2;
char c = char(d);
return names[0] + ", " + names[1] + " and " + c + " others like this";

现在,我必须返回存储在变量"中的人数;d";作为单个字符串;d";是整数,不能直接相加。那么,我应该做些什么来存储";d";作为字符串或字符添加到返回字符串中?

std::ostringstream在这里会对您有很大帮助,因为您可以简单地向它写入不同类型的值(例如字符串和数字(。

在下面的示例中,我将它与<fmt>库一起使用,但您可以使用<format>库(C++20,MSVC(,或者只写入oss,就像写入std::cout一样。

【演示】

#include <fmt/core.h>
#include <iostream>  // cout
#include <sstream>  // ostringstream
#include <string>
#include <vector>
auto f(const std::vector<std::string>& names) {
if (names.size() >= 2) {
int d = names.size() - 2;
std::ostringstream oss{};
oss << fmt::format("{}, {} and {} others like this", names[0], names[1], d);
return oss.str();
}
return std::string{};
}
int main() {
std::vector<std::string> names{ "Anne", "Brian", "Charlize", "Daniel" };
std::cout << f(names);
}
// Outputs:
//
//   Anne, Brian and 2 others like this

在C++中,有两种不同类型的字符串:char数组和std::string

std::string[最简单的方法。]

std::string的行为与其他编程语言中的字符串类似(它们可以连接(。要将int转换为std::string,请使用std::to_string(val)(请参阅https://en.cppreference.com/w/cpp/string/basic_string/to_string)。

我会避免在这里使用C样式字符串,因为它们有固定的大小,需要手动删除

最新更新