将int转换为字符串数组

时间:2017-10-13 22:35:12

标签: c++ arrays

我希望将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;

}

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:3)

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++
}

答案 1 :(得分:0)

我认为这是导致崩溃的原因:

<head>
    <title>Personal Project</title>
</head>


<body>
    <div id = "root"></div>
</body>

只需将运算符更改为“&lt; 9”而不是“&lt; = 9”:

import React from 'react';
import ReactDOM from 'react-dom';

function formatName(user) {
    return user.firstName + ' ' + user.lastName;
}

const user = {
    firstName: 'Justin',
    lastName: 'Schneider'
};

const element = (
    <h1> Hello, {formatName(user)}!</h1>
);

ReactDOM.render(
    element,
    document.getElementsById('root')
);