我正在尝试编写将字符串存储在数组中的代码。我正在尝试使用char *来实现,但无法实现。我在网上搜索,但找不到答案。我已经尝试了下面的代码,但是没有编译。我使用字符串流,因为在某些时候我需要将一个字符串与一个整数连接起来。
stringstream asd;
asd<<"my name is"<<5;
string s = asd.str();
char *s1 = s;
最佳答案
>我正在尝试编写将字符串存储在数组中的代码。
好吧,首先,您需要一个字符串数组。我不喜欢使用裸数组,所以我使用std::vector
:
std::vector<std::string> myStrings;
但是,我知道您必须使用数组,因此我们将改为使用数组:
// I hope 20 is enough, but not too many.
std::string myStrings[20];
int j = 0;
>我使用字符串流是因为...
好的,我们将使用stringstream:
std::stringstream s;
s << "Hello, Agent " << 99;
//myStrings.push_back(s.str()); // How *I* would have done it.
myStrings[j++] = s.str(); // How *you* have to do it.
那给了我们一个字符串,但是您需要一个字符串:
for(int i = 3; i < 11; i+=2) {
s.str(""); // clear out old value
s << i << " is a" << (i==9?" very ":"n ") << "odd prime.";
//myStrings.push_back(s.str());
myStrings[j++] = s.str();
}
现在您有了一个字符串数组。
完整的,经过测试的程序:
#include <sstream>
#include <iostream>
int main () {
// I hope 20 is enough, but not too many.
std::string myStrings[20];
int j = 0;
std::stringstream s;
s << "Hello, Agent " << 99;
//myStrings.push_back(s.str()); // How *I* would have done it.
myStrings[j++] = s.str(); // How *you* have to do it.
for(int i = 3; i < 11; i+=2) {
s.str(""); // clear out old value
s << i << " is a" << (i==9?" very ":"n ") << "odd prime.";
//myStrings.push_back(s.str());
myStrings[j++] = s.str();
}
// Now we have an array of strings, what to do with them?
// Let's print them.
for(j = 0; j < 5; j++) {
std::cout << myStrings[j] << "\n";
}
}
关于c++ - 储存琴弦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10058216/