我是C ++的新手。我有一个问题,我如何从字符串元素(一个元素或字符)中获取字符串。
就像,我有一个名为std::string
的{{1}},其中包含h
。现在我有另一个名为"HKK"
的字符串。现在我想从k
获取元素编号1(k)并将其设置为h
k
但是编译器(g ++)给出的错误是:
#include<iostream>
#include<string>
using namespace std;
int main() {
string h = "HKK";
string k = h.at(1); //K
cout << k << endl;
return 0;
}
修改 如果我这样做的功能如下:
error: invalid conversion from ‘char’ to ‘const char*’ [-fpermissive]
string k = h.at(1);
^
有没有解决方法呢?
void out(string out) {
cout << "Out : " << out << endl;
}
int main() {
string h = "HKK";
out(h.at(1)); //K
return 0;
}
请帮帮我! 谢谢 对不起英文不好
答案 0 :(得分:1)
如何从字符串元素(一个元素或字符)中获取字符串。就像,我有
std::string
名为h
,它包含“HKK”
您使用std::string::at
:
std::string h = "HKK";
std::string k;
k += h.at(1); //K
或您使用std::string::operator[]
:
k += h[1];
现在我有另一个名为
string
的{{1}}。现在我想从k
获取元素编号1(k)并将其设置为'k'。
您使用h
:
std::string::replace
或您使用std::string k = "HkK";
k.replace( 1, 1, "k" );
:
std::string::operator[]
答案 1 :(得分:1)
虽然我个人不喜欢你的function
电话,但我仍然提供解决方案,如下所示: -
void out(string out)
{
cout << "Out : " << out << endl;
}
int main()
{
string h = "HKK";
out(string().append(1,h.at(1))); //K
return 0;
}
在这里,您可以使用string
创建一个临时string()
变量&amp; append
1个字符(例如h.at(1)
)。因此out
是函数out
中的字符串,只有一个值,即K
。
但是我总是建议您使用non-temporary
而不是临时用户。它们更加安全和安全。不容易出错。