C - 在word中搜索一个字母

标签 c arrays

我正在尝试创建一个函数,它有两个参数,一个是单词,一个是要在单词中搜索的字母。

单词实际上是一个数组,其中每个字母都是数组的一个元素,例如对于单词“word”,我们有以下内容: 单词 = [w, o, r, d]。

因此我必须将 word[ ] 的每个元素与字母进行比较,如果它们匹配,函数应返回 1,否则返回 0。 代码如下:

char ltt_srch(char word[], char ltt)//LINE 13
{
    int len, i;
    len = sizeof(word)/sizeof(word[0]);
    for(i = 0; i < len; i++)
    {
        if(ltt == word[i])
        {
            return 1;
        }
    }
    return 0;
}

我使用以下代码在 main 中调用 ltt_srch:

if(ltt_srch(word[len], ltt) == 0)//LINE 51
{
    printf("Letter not found.\n");
}

但我收到一个警告和一个注释,特别是:

第 13 行:[注意] 应为 'char *' 但参数类型为 'char'

第 51 行:[警告] 传递“ltt_srch”的参数 1 使指针来自整数而不进行强制转换

最佳答案

问题是您传递的是 word[len] 而不是 word 作为您的第一个参数。如果您传递 word[len],您将传递 word 的索引 len 上的字符,而不是 word 本身.

例如,如果 word = "word"len = 2,则 word[len] == 'r'

解决方案:

if(ltt_srch(word, ltt) == 0) 而不是 if(ltt_srch(word[len], ltt) == 0)

关于C - 在word中搜索一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41141798/

相关文章:

arrays - 在 GLSL 着色器中使用小型查找表

arrays - 如果我使用一维数组来表示方板,我如何获取索引并检查其上方、下方和两侧的方 block ?

c - 为什么我的数字数组的平均值不正确?

c - 增加二进制可执行文件的大小

c - 我想知道当 if(i%2) 它检查什么来继续时会发生什么。它错过了 == 但它打印出的总和为 20?为什么?

c - 升级到 Python3 - C 数据类型

JAVA,字符串到字节数组字节大小

java - 从 pdf 的字节数组中获取 pdf 的第一页作为图像

C 从客户端向服务器提交命令

c - 子字符串中字符的外观