array.size有问题吗?

时间:2019-08-30 19:01:40

标签: c++

我想从keybord中将一个字符串放入一个数组中,这样我就可以计算出for循环中有多少个字母

我试图构建并运行代码,但是我实际上没有工作,并且出现错误,但是我并不真正理解该错误以及修复它们的方法。错误是:

  

在Bao(my Array)中请求成员大小,这是非类类型

这是我的代码:

char Bao[100];
cout<<"Give me a sentence"<<endl;
cin.getline(Bao, 100, '\n');
cout<< Bao.size()<<endl;

2 个答案:

答案 0 :(得分:1)

在这里,您甚至都不应该使用数组。使用std::string。 以下是一些示例代码,可完成与您发布的代码相同的事情:

std::string sentence;
std::cout << "Give me a sentence" << std::endl;
std::cin.getline(sentence, 100, '\n');
std::cout << "Scentence is " << sentence.size() << " bytes" << std::endl;

编辑:使用getline()解决空格键错误。

答案 1 :(得分:1)

c ++数组中没有函数'size'。您必须使用

sizeof(array)

给出以字节为单位的数组大小。要获取数组的真实大小,请使用

sizeof(array)/sizeof(array[0])

将数组的大小除以数组中单个元素的大小,从而获得元素的数量。

此外,为什么在这种情况下使用数组?您似乎正在寻找一个字符串。