#include <iostream>
using namespace std;
int main() {
// your code goes here
std::string test;
test = (char) 76;
test += (char) 77;
test += (char) 78;
test += (char) 79;
std::cout << "test contains: " << test << std::endl;
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
char one = '1';
char two = '2';
s = one;
s += two;
cout << s << endl;
}
9条答案
按热度按时间ncecgwcz1#
您可以使用以下任意/所有方法从单个字符创建
std::string
:gv8xihay2#
std::string
有一个构造函数,它接受一个数字和一个字符。字符将重复给定的次数。因此,您应该用途:pod7payv3#
你可以试试stringstream,下面是一个例子:
yrwegjxp4#
无论您拥有多少
char
变量,此解决方案都有效:nhjlsmyf5#
你仍然可以使用字符串构造函数,它有两个迭代器:
更新日期:
问得好,James和Gman。刚刚在Derek Mjones的免费下载的“新C标准”中搜索了“指针过去”,我的第一个命中是:
如果表达式P指向数组对象的一个元素,而表达式Q指向同一数组对象的最后一个元素,则指针表达式Q+1比较结果大于P ...,即使Q+1不指向数组对象的一个元素...
在分段式体系结构上,递增指针超过段的末尾会导致地址将分段式体系结构绕回该段的开头如果数组是在这样的段中分配的,则实现必须确保在数组之后有空间,以便在结束地址之后有一个1,或者它使用一些其他的实现技术来处理这种情况(例如,如果使用的段是指针表示的一部分,则可以分配超过结束段值的特殊段)...
C关系运算符模型使指向对象的指针能够像指向数组对象的索引一样被处理。(不是一个更大对象的两个子对象)很少有任何意义,标准也没有定义对指针的这种支持。一些应用程序确实需要利用存储器中不同对象的相对位置信息。然而,这种用法被认为没有足够的普遍效用,委员会无法指定一种模式来界定行为.。
大多数实现在对具有指针类型的值进行任何操作之前不执行检查。大多数处理器使用与它们用于算术类型相同的指令来执行涉及指针类型的关系比较。对于使用分段存储器体系结构的处理器,指针值通常使用两个分量来表示,段号和该段内的偏移量。这种表示法的结果是,为对象分配存储空间,使其适合于单个段,这样做有许多好处(例如,对象的存储不跨越段边界)。一个好处是优化涉及为某些关系运算符生成的机器码,它只需要检查段偏移分量。当p和q指向不同的对象时,这可能导致p〉= q为假但p〉q为真的情况。
neekobn86#
这可以在gcc C++ 4.9.2(http://ideone.com/f3qhTe)上运行
slwdgvem7#
在大多数情况下,您可以只使用
{ch}
。它使用
std::string
的std::initializer_list构造函数。uqxowvwt8#
我对Java了解不多,但在C++中最接近
ch + ""
的可能是std::string{} + ch
。注意,""
不是std::string
,并且您不能重载基本类型的操作符,因此ch+""
不可能导致std::string
。然而,
std::string{} + ch
包含了2个字符串,我想编译器可以优化掉临时变量,不过要从一个字符构造一个字符串,这是非常好的:std::string(1,ch)
.对于
std::string
的其他构造函数,请参考https://en.cppreference.com/w/cpp/string/basic_string/basic_string。cvxl0en29#
可以将字符串设置为等于char。
./测试
12