如何将字符串中的每个字母与保存数组中字母的指针进行比较

问题描述 投票:0回答:1

我正在创建一款本质上是在 iMessage 上寻找单词的游戏。 (有一个字母网格,通过在它们之间画一条线来组成单词)。

在我目前的工作中,我正在通过标准词典搜索以查找可能的单词。如果我知道如何将单词的字母与字母数组的指针进行比较,我几乎可以弄清楚如何在二维数组上执行此操作。我的信件保存在 wordhunt 中,这是一个获取输入文件数据的结构:

    3 3                                number of rows & columns in the strand grid
    3                                the length of the words to find
    t l e a u n i s h         the letters that populate the strand grid

这是结构:

typedef struct wordhunt
{
    char** words;
    char** letters;
    int rows, cols;
    int numWords;
    int wordLen;
} wordhunt_t;

目前,要访问这些字母,我使用

wordhunt->letters[j]
,但由于类型差异,将其与单词 [i] 中的每个字母进行比较不起作用。我该如何解决这个问题?

我假设以某种方式将其存储在结构之外的新数组上可以使其工作,并且我可以使用输入文件中的整数来做到这一点,但我无法弄清楚如何将其转换为单词和字符等。

//assume word is pulled from the dictionary correctly, iterating through each letter in a loop as well
if (word[i] == wordhunt->letters[j]){

     //tracks that each letter in the word is within the array of letters, used later
     ++validLetterCt
     
     //break out of loop to look at next letter in word
     break;
}
arrays c string struct char
1个回答
0
投票

此代码迭代网格中的每个单元格,将单词的每个字母与网格中的字母进行比较,并在找到匹配时递增 validLetterCt。

for (int j = 0; j < wordhunt->rows; j++) {
    for (int k = 0; k < wordhunt->cols; k++) {
        for (int i = 0; i < wordLen; i++) {
            if (word[i] == wordhunt->letters[j][k]) {
                ++validLetterCt;
                break;
            }
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.