gpt4 book ai didi

c++ - strlen 函数与循环不兼容,循环变量不兼容

转载 作者:行者123 更新时间:2023-11-28 03:02:45 25 4
gpt4 key购买 nike

好吧,我到处都在寻找,但找不到正确的方法来做到这一点。我只是想接收一个字符串,将该字符串放入数组中并输出内容。但是,我想根据用户输入的字符串的大小来执行此操作。我遇到了奇怪的错误,例如不兼容,我想知道为什么,谢谢。

#include <iostream>
#include <array>
#include <string>
using namespace std;

int main()
{
int x = 4000;
string y;

cout << "Enter value";
getline(cin, y);
array<char, strlen(y)>state;

for(int i=0; i<strlen(y); ++i)
cout << state[i] << ' ';

system("PAUSE");
return 0;
}

最佳答案

std::array需要一个编译时大小,所以不能用 strlen 实例化.此外,strlen不适用于 std::string , 它需要一个指向 char 的指针, 指向空终止字符串的开头。

你可以使用 std::vector<char>相反:

std::string y;
std::cout << "Enter value";
std::getline(std::cin, y);

std::vector<char> state(y.begin(), y.end());

for(int i = 0; i < state.size(); ++i)
std::cout << state[i] << ' ';

另一方面,为什么不直接使用 string y直接地?你真的需要“数组”吗?

for(int i = 0; i < y.size(); ++i)
std::cout << y[i] << ' ';

关于c++ - strlen 函数与循环不兼容,循环变量不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20344857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com