如何声明一个未知大小的数组,然后输入直到我想要,然后获取数组的大小
How do I declare an array of unknown size then take input till I desire and then get the size of the array?
>我正在尝试声明一个大小为 10,000 的数组。最好是字符数组。然后我可以接受任何大小 n(<=10,100( 的输入。我想找到这个 n。
我有一个代码不起作用。
int main()
{
char arr[10000];
cin >> arr;
cin.sync();
int l=0;
for(int i=0; ; i++)
{
if(arr[i]=='n')
break;
l++;
}
cout << l;
return 0;
输入:地狱我预计输出为 4,但实际输出为 4482。
在标准C++中无法做到这一点。但是你可以使用
std::vector<char> arr;
并在需要时arr.resize(/*ToDo - size here*/)
。std::vector
内存管理也优于使用具有自动存储持续时间的大型固定大小阵列。
也就是说,在您的情况下,std::string
可能是最佳选择:
std::string the_standard_library_is_fantastic;
std::cin >> the_standard_library_is_fantastic;
其次
std::cout << the_standard_library_is_fantastic;
您认为arr
在某种意义上以'n'
终止的假设是不正确的。
cin >> arr;
将一个 C 样式的字符串放入 arr
中,该字符串以 ' '
结尾,而不是以 'n'
结尾(即使您按 Enter 将输入发送到程序(。要获得 4
的预期输出,您需要更改此设置
if (arr[i] == 'n')
对此:
if (arr[i] == ' ')
正常使用标准C++库。 #include <string>
可以轻松完成此任务。
string arr;
cin >> arr;
cin.sync();
int l = arr.length();
cout << l;
return 0;
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 这是我尝试让用户将值输入到数组中.然后将其隐藏为大量的星号
- 我似乎无法为指针分配一个数组,然后更改数组的内容
- 如何从文件中读取值,然后使用它们来初始化 2D 数组C++
- 该程序将.csv文件中的一系列单词放入数组中,然后随机生成句子.但它不起作用
- 如何在C++中初始化值,然后稍后为uint32_t数组赋值
- 如何在类中制作 2D 数组元素,然后在其构造函数中指定其维度?
- 从文本文件中读取并输入到数组结构中,然后显示读取的数据C++
- 如何创建一个C++程序来读取字符串数组中的信息,然后将其排序到类中?
- 将 char[] 数组转换为字节,然后将字节转换为 int,反之亦然
- 从文件中读取并将其内容放入对象数组中,然后对它们进行排序
- C++ 如何创建 2D 数组,将其传递给另一个函数,然后打印
- 我正在编写一个代码来将 int 数组存储在文件中,然后用 c++ 检索它,但是检索第一项是假值,我该如何解决这个问题?
- 我的单例中的数组在离开函数后没有保留信息,然后在尝试再次访问信息时崩溃
- 按字母顺序排序字符数组,然后按长度排序
- 将2D数组传递到函数,然后将其乘以两个
- 将结构数组BYRE从C#传递到C ,然后将其恢复
- 如何发送(和接收)从 Swift 到 Objective c++ 再到 c++,然后备份到 Swift 的超大型浮动数组
- 创建对象数组然后有效删除它们的更好方法
- 如何从.txt文件复制单词到数组.然后将每个单词打印在单独的一行上