将 int 转换为字符串数组

Converting an int into string array

本文关键字:字符串 数组 转换 int      更新时间:2023-10-16

我希望将 int 1-9 的 for 循环转换为字符串数组,环顾四周后,我找到了一些将 int 转换为字符串的代码,但是当我尝试将其放入 for 循环并制作字符串数组时,我遇到了错误。

当我尝试这个时,我得到了断言失败

#include<iostream>
#include <sstream> 
#include <string> 
using namespace std;
int main()
{
    string str[9];
    for (int a = 1; a <= 9; a++) {
        stringstream ss;
        ss << a;
        str [a] = ss.str();
        cout << str[a];
    }
    return 0;
}

当我尝试这个时,程序不断崩溃

#include<iostream>
#include <sstream>  
#include <string>  
using namespace std;
int main()
{
    ostringstream str1 [9];
    for (int num = 1; num <= 9; num++) {
        str1[num]<< num;
        string geek = str1[num].str();
        cout << geek << endl;
    }
    return 0;
}

任何帮助将不胜感激。

c++ 使用基于 0 的索引。这意味着string str[9]支持索引0->8而不是1->9。在此循环中:

for (int num = 1; num <= 9; num++) {

您正在尝试从 1->9 编制索引。您应该将其更改为:

for (int num = 0; num < 9; num++) {

遍历整个数组。或者更好的是使用:

std::vector<std::string> str(9); // For dynamic storage duration 
std::array<std::string, 9> str; // For automatic storage duration
int num = 1;
for (auto& currentString : str) {
      currentStr << num++
}
我认为这是

崩溃的原因:

for (int num = 1; num <= 9; num++) 

只需将运算符更改为"<9"而不是"<=9":

for (int num = 1; num < 9; num++)