我正在尝试在单个字符串中获取单词的字母索引。我想使用for
循环来重复使用单词的函数,然后将索引存储在一个单独的数组中,然后相应地对它们进行排序。
在编译期间,编译器给出了一个错误:
Subscripted value is not array, pointer or vector.
根据我的基本理解,我认为字符串是一个字符数组。我错了吗?
我的代码:
#include <stdio.h>
int findIndexOfAlphabet(char x);
int main(int argc, const char * argv[]) {
char word = "water";
int number = findIndexOfAlphabet(word);
printf("%d\n",number);
}
int findIndexOfAlphabet(char x)
{
char trial = x[0];
int index;
for (int i = 'a'; i <='z'; i++)
{
if (trial == i)
{
index = i;
break;
}
}
return index;
}
答案 0 :(得分:1)
x
中的 findIndexOfAlphabet
定义为char
,编译时会遇到x[0]
,编译器会抱怨。
适当地声明你的功能:
int findIndexOfAlphabet(char*);
,在定义期间:
int findIndexOfAlphabet(char* x)
{
// body similar
}
word
为char*
而不是char
:
char* word = "water";
答案 1 :(得分:0)
编译器是正确的。您将x
定义为标量char
int findIndexOfAlphabet(char x)
但将其用作数组:
char trial = x[0];