嗨,所以我是C的新手.
基本上我要问的是:
所以我有一个二维char数组,它代表一个字符串列表(char array[size][20]).
然后我有另一个字符串,我代表一个char尖头(char *word).
我希望我的函数要做的是遍历我的数组中的每个字符串,如果它找到了单词return 1.
但是我对指针很困惑,所以我不确定如何写这个.我开始只使用for循环,遍历数组的行.然后if(word = array[i]) return 1.但这对我不起作用.
我希望这是有道理的,如果不是,我会再次尝试解释.我会非常感谢任何答案.我真的不需要代码.只是朝着正确的方向迈出了一步.
假设您的数组由以空字符结尾的字符串组成(即长度最多为19的字符串),那么strcmp您的解决方案是:
#include <string.h>
#include <stddef.h>
size_t find_in_array(char array[][20], size_t size, char * word)
{
for (size_t i = 0; i != size; ++i)
if (strcmp(array[i], word) == 0)
return i;
return size;
}
Run Code Online (Sandbox Code Playgroud)
如果找到单词,则返回偏移量,size否则返回.
用法:
char array[3][20] = { "Hello", "World", "Jim" };
size_t i = find_in_array(array, 3, "Jim"); // returns "2"
Run Code Online (Sandbox Code Playgroud)
如果"i!= 3",则找到该单词.