gets() 二维数组
gets() two dimensional array
我无法理解以下代码,
static char s[N][N];
int i = 0;
while( gets(s[i]) )
{ some loop, where i gets incremented }
考虑到数组是 N 维的,那么当
gets(s)
叫?它如何将整个字符串存储在 s[i] 元素中?感觉 s[i] 应该等于输入的第一个字符,而不是整个字符串。当它循环使用更多输入时会发生什么?关键是要将其存储为
[char, char, char, char]
[char, char, char, char, char]
[char, char, char, char, char, char]
... and so forth
这似乎是代码目前正在做的事情。但我不明白怎么做。
编辑 #1
很多人建议反对使用 gets((,但是当没有非法输入并且我想将字符存储为数组中的元素而不是字符串时,为什么 gets(( 不合适?
s[i]
元素是一个字符数组,因为s
是一个数组数组。字符数组可用于存储字符串,方法是使用零字符(称为"nul"(来标记结尾。
上面的代码存储字符串,但带有编号索引。 但是将该数字索引存储在数组的第一维中。
这样想,我想存储 10 个最大大小为 256 个字符的字符串:
int main()
{
char s[10][256];
for (int i = 0; i < 10; i++ ) {
gets(s[i]);
}
for (int i = 0; i < 10; i++ ) {
cout << s[i] << endl;
}
}
cout << s[1][2] << endl;
注意:对于上面代码的最后一行,它将输出第二个条目(我们对 0-9 的所有内容进行排序(和该条目处字符串的第三个字符。 因此,如果我的条目是 test2,那么输出将是"s"。
注意:调用 gets(s( 是不正确的,因为它不会编译并且不是代码的意图。
gets(( 调用具有一些功能,如果不监视输入,可能会使您陷入缓冲区溢出问题。
示例:
int multi_array[2][2] = {{2,3,4},
{7,8,9},
{1,5,0}};
Array[n][m]
得到 第一名Array[0][0]
第二名Array[0][1]
位置 0,1 是 3
位置 1,2 是 9
位置 2,2,为 0
相关文章:
- 将值从二维数组输出到文本文件
- 在二维数组中查找最小值和最大值?
- 移动二维数组中的字符
- 如何正确填充在堆上分配的二维数组?
- 传递二维数组时出现问题
- 具有随机数的二维数组不会更改
- 如何在C++中获取二维数组中最少的一列数?
- 如何使用用户输入变量制作二维数组?
- C++ 中动态二维数组的访问冲突
- 遍历二维数组的所有子数组
- 将二维数组的所有元素插入到一维数组中
- 在函数中传递二维数组
- 为什么指针在对二维数组进行排序时无法正常工作?
- 创建 std::string 的二维数组的最佳做法
- 如何将文本文件读取到二维数组中并以 c++ 打印
- 元素在二维数组 c++ 中的出现次数
- 执行 c++ 二维数组
- C++ 中的二维数组初始化为一个值
- 在C++中初始化第一维大小未知的二维数组
- gets() 二维数组