我想将以下行存储到 C++ 中的字符串数组中。我该怎么做?

Posted

技术标签:

【中文标题】我想将以下行存储到 C++ 中的字符串数组中。我该怎么做?【英文标题】:I want to store the following line into a string array in C++. How can I do it? 【发布时间】:2020-04-05 20:30:26 【问题描述】:

我想在 C++ 中创建一个字符串数组,其中包含 0000、0001、00002、0003 等等,直到 9999。有没有办法用循环来实现它。我不想手动输入。我想要这样的东西。

for(i=0;i<10000;i++)
     str[i] = i;

【问题讨论】:

我的意思是c语言或者c++语言 sprintf(str[i], "%04d", i) 在 C++ 中有几种方法可以做到这一点。您可以使用 的 stringstream 或 标头的 to_string 方法。这些都是非常简单的方法,还有其他解决方案,例如使用 boost 库等。 Re "我的意思是c语言或c++语言",请在不同的问题中发布不同的问题。由于正文提到了 C++,我将删除对 C 的提及。随意单独发布一个 C 问题。 字符串是一组连续的字符,整数是完全不同的东西,所以你必须将 intdgers 转换为字符串,对于 C 看 sprintf 或 itoa 函数。您还需要为字符串分配内存,以便它可以存储字符。 【参考方案1】:

https://ideone.com/4kayTz

#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <iomanip>

int main() 
  std::vector<std::string> str(10000);
  std::stringstream ss;
  ss << std::setfill('0');
  for (int i = 0; i < 10000; i++) 
    ss << std::setw(4) << i;
    str[i] = ss.str();
    ss.str("");  // Reset/make empty the string stream.

    std::cout << str[i] << std::endl;
  
  return 0;

【讨论】:

非常感谢。你能建议我一些可以学习这个员工的资源吗? 我不知道,只是练习有助于缩小搜索范围,加上阅读手册有助于找到最佳解决方案,再加上 ***。 感谢您的回复。

以上是关于我想将以下行存储到 C++ 中的字符串数组中。我该怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

(Golang)将数组中的所有行插入到表中

将文件中的间隔整数读入 C++ 中的数组

如何将字符串加载到 BYTE* 数组(C++)的元素中 [重复]

图像到字节数组到字符串(反之亦然)

乘以存储在一维数组算法中的上三角矩阵

读取特定行中的值(可变数量的值)并将它们存储在数组中