gpt4 book ai didi

c - 我应该如何在二维字符数组中搜索字符?

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:48 25 4
gpt4 key购买 nike

我有两个字符数组:(为清楚起见,使用了魔数(Magic Number))

char Intermediary[121];
char RI[20][7];

我使用以下代码将 Intermediary 的内容复制到 RI:(请记住每一行都需要一个空分隔符 (20 * (7 - 1)) = 121 - 1)

int a = 0;
int b = 0;
int c = 0;

for( a=0; a<20; a++ )
{
for( b=0; b<6; b++ )
{
RI[a][b] = Intermediary[c++];
}

RI[a][6] = '\0';

}

我打算为此使用 strchr,检查是否RI[0][0] 到 RI[0][7] 包含 y。如果发现在那个范围内找不到 y,程序应该迭代到 RI[1][0] 和 RI[1][7] 之间的字符。

但是,strchr 采用指针作为参数,而不是 char 数组。

我如何制作一个指针,我可以在其中遍历每一行?

附带说明一下,如果有人想要额外的加分,我的代码是否正确地将一维数组转换为二维数组?

最佳答案

要在给定行 a 上查找字符 chr,您将使用

char *pch;

pch = strchr( RI[a], chr );
if(pch)
{
// character found; pch is a pointer to it.
}
else
{
// character not found
}

RI[a] 是指向行首元素的指针,也可以表示为 &(RI[a][0])

但首先你必须修复你的 while 循环,因为它没有按照你在问题中所说的那样做(为每一行制作一个以 NULL 结尾的字符串)。

我建议使用这个固定版本,用两个 for 循环重写:

for( a=0; a<20; a++ )
{
for( b=0; b<6; b++ )
{
RI[a][b] = Intermediary[c++];
}
RI[a][6] = '\0';
}

关于c - 我应该如何在二维字符数组中搜索字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23743137/

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