我正在尝试编写将字符串存储在数组中的代码。我正在尝试使用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/

10-09 01:20