c - 确保用户的输入与我的程序生成的字符相匹配

标签 c arrays boolean

这是作业

我正在编写一个简化的拼字游戏,我让我的程序随机生成字符,然后用户会尝试从这些生成的字符中创建一个单词,然后得到一个分数。 我遇到的问题是确保用户实际使用提供的字符。我不知道如何解决这个问题。我不需要任何代码,但可以提供提示,甚至可以提供起点链接。谢谢你的帮助!

编辑 - 我程序的一半左右[创建字母集的部分]

 void generate_letter_set(int letter_set[] , int size_let , int num_let)  
 {
  int arr[N];

const char let[] = 
{'K','J','X','Q','Z','B','C','M','P','F','H','V','W','Y','G','L','S','U','D','N','R','T','O','A','I','E'};

const int freq[] = 
{ 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 4, 4, 4, 6, 6, 6, 8, 9, 9, 12 };

int score[] =
{ 5, 8, 8, 10, 10, 3, 3, 3, 3, 4, 4, 4, 4, 4, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1};

        int index = 0; 
    for(int i = 0 ; i < 26 ; i++) {
for(int f = 0 ; f < freq[i]; f++) {
        arr[index++] = let[i];  //All the 96 letters are stored in let[i]
            //printf("%c " , let[i]);  // Created the letter bank for all the letters 

 } 
}       int letter;
        printf("Your letters are: ");
    for(int l = 0; l < 7; l++){
            letter = rand() % 97; 
        printf("%c ", arr[letter]);


                                }   
}

最佳答案

有很多不同的方法可以在数组中搜索特定字符。您需要的基础是非常简单的搜索功能。

一个简单的解决方案是使用两个嵌套的 for 循环。假设 let[] 是您要检查的“大海捞针”,而 word 是您的用户输入:

// Check each letter of word[]...
for (int ii = 0; ii <= lengthOfUserInput; ii++)
{
    char characterToValidate = word[ii];
    // ... for not existing in let[]
    for (int jj = 0; jj <= lengthOfStringOfValues; jj++)
    {
        if (characterToValidate != let[jj])
    }
}

关于c - 确保用户的输入与我的程序生成的字符相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46901918/

相关文章:

c - linux中时序计算的引用是什么

c - 试图理解 C 中的函数指针

javascript - 随机比较数组中的每个元素

java - Java boolean 方法最后返回 true 和 false 语句的区别

python - 如何防止.apply更改 boolean Pandas 系列的dtype

c - K 和 R 练习 1-22

ruby - 尝试使用 Ruby while 循环查找字符串的元音

java - 将数组列表格式化为特定格式

javascript - & 1 JavaScript。它是如何工作的?聪明还是善良?

c - 这是什么语法?