获取第一个字符串来获取索引?

时间:2016-09-19 05:06:09

标签: c sorting indexing

我正在尝试在单个字符串中获取单词的字母索引。我想使用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;
}

2 个答案:

答案 0 :(得分:1)

函数x中的

findIndexOfAlphabet定义为char,编译时会遇到x[0],编译器会抱怨。

适当地声明你的功能:

int findIndexOfAlphabet(char*);

,在定义期间:

int findIndexOfAlphabet(char* x)
{ 
// body similar
}

wordchar*而不是char

char* word = "water";

答案 1 :(得分:0)

编译器是正确的。您将x定义为标量char

int findIndexOfAlphabet(char x)

但将其用作数组:

char trial = x[0];