C / C 将字符串放入二维数组中
C / C++ Putting a string into a two dimensional array?
嘿,非常新手C/C ,希望我能朝着正确的方向推动解决错误。
我正在创建一个程序,该程序打开文件并在文件中读取文本并将其放入字符串中。从那里,我创建了一个二维数组,通过获取琴弦可以适合最小的完美正方形的平方根来找到它的大小。使用以下代码将字符串列入数组行中。
char newarray[b][b]; //b being the square root of the closest perfect square.
57
58 //put string into arrray;
59 for(int row=0; row < b; row++)
60 {
61 for(int column=0;column < b; column++)
62 {
63 newarray[row][column] = newstring[row];
64 }
65 }
但是,当我打印此数组时,文本的每个字母都填充了该行中的每个元素。
即。
string s= "supercalifragilistic";
char[5][5];
// I want it to come out like this
0 1 2 3 4 5
1 s u p e r
2 c a l i f
3 f r a g i
4 l i s t i
5 c
//but it comes out like this
0 1 2 3 4 5
1 s s s s s
2 u u u u u
3 p p p p p
4 e e e e e
5 r r r r r
对源字符串使用不同的索引。
char newarray[b][b]; //b being the square root of the closest perfect square.
//put string into arrray;
int i=0;
for(int row=0; row < b; row++)
{
for(int column=0;column < b; column++, i++)
{
newarray[row][column] = newstring[i];
}
}
您只需要声明一个整数变量即可指定字符串的哪个字符,并在每个分配后将其递增。
char newarray[b][b]; //b being the square root of the closest perfect square.
int counter = 0;
for(int row = 0; row < b; row++){
for(int column=0;column < b; column++){
newarray[row][column] = newstring[counter];
counter++;
}
}
使用不同的索引来遍历字符串。
在当前代码中,进行修改:
int k=0;
for(int row=0; row < b; row++)
{
for(int column=0;column < b; column++)
{
newarray[row][column] = newstring[k++];
}
}
这是因为:在以前的代码中,这就是填充newarray
的方式:
Say, b = 2
newarray[0][0] = newstring[0];
newarray[0][1] = newstring[0];
newarray[0][2] = newstring[0];
newarray[1][0] = newstring[1];
newarray[0][1] = newstring[1];
等等。
但是,您想要类似的东西:
newarray[0][0] = newstring[0];
newarray[0][1] = newstring[1];
newarray[0][2] = newstring[2];
newarray[1][0] = newstring[3];
newarray[0][1] = newstring[4];
等等。一种方法是使用变量,例如k
从0
到string length
,对于newstring
。
您的问题不包含足够的信息,但是如果我正确理解您的问题,在内部for
循环内,您不会为newstring
增加 index 。
您需要更改
newarray[row][column] = newstring[row];
to
newarray[row][column] = newstring[(row * b) +column];
相关文章:
- 将值从二维数组输出到文本文件
- 在二维数组中查找最小值和最大值?
- 移动二维数组中的字符
- 如何正确填充在堆上分配的二维数组?
- 传递二维数组时出现问题
- 具有随机数的二维数组不会更改
- 如何在C++中获取二维数组中最少的一列数?
- 如何使用用户输入变量制作二维数组?
- C++ 中动态二维数组的访问冲突
- 遍历二维数组的所有子数组
- 有效地从文本文件中读取带有字符串索引的大型二维数组(矩阵)
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 如何在C++中将字符串的动态二维数组作为参数传递
- C++基于用户输入字符串长度创建二维数组
- C / C 将字符串放入二维数组中
- 从二维数组中的char*初始化c++字符串时,读取大小为1的无效值
- 将字符串转换为二维数组
- C++二维数组,包含字符串和int
- 将字符串的二维数组和向量作为参数传递给函数
- 在c++中无法显示二维数组中的字符串