查找字符串中字符的第一个索引

时间:2015-04-19 19:19:42

标签: c string

我应该遍历传入的数组的字符并查找第一次出现的char,然后返回第一次出现的索引。如果没有找到char,那么我返回-1。这似乎适用于所有字符,除了0处的字符,它由于某种原因找不到。

int find_ch_index(char string[], char ch) {
    int i = 0;
    while (string[i++]) {
            if (string[i] == ch) {
                    return i;
            }
    }
    return -1;
}

4 个答案:

答案 0 :(得分:2)

你应该在while循环结束时增加i:

int find_ch_index(char string[], char ch) {
    int i = 0;
    while (string[i]) {
        if (string[i] == ch) {
            return i;
        }
        i++
    }
    return -1;
}

答案 1 :(得分:1)

你永远不会找到第一个字符,因为:     while(string [i ++])

将i从'0'递增到'1',因此'if'处的语句从不比较第一个字符。

退出此增量并在循环结束时执行此操作。

答案 2 :(得分:0)

我从0增加到1  在循环中。

答案 3 :(得分:0)

在while条件下

while (string[i++]) {
你增加了指数i。因此在下一个声明中

        if (string[i] == ch) {

您正在使用增加的索引。

该功能可以按以下方式编写

int find_ch_index( const char string[], char ch ) 
{
    int i = 0;

    while ( string[i] && string[i] != ch ) i++;

    return string[i] == ch ? -1 : i;
}