我希望将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;
}
任何帮助都会非常感激。
答案 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')
);