PROG 5.2 入力文字は、文字列の何番目

<問題>

入力文字について、文字列の何番目にあるかを出力する。例題は、Hello Kitty。先頭を1番目とする。ない場合は、0とする。

<実行結果>


K
Hello Kittyの7番目です。

k
Hello Kittyの0番目です。



解答例

#include <stdio.h>

int main(void) {
    char str[] = "Hello Kitty";
    char c;
    int i, n;

    scanf("%c", &c);

    i = 0;
    n = -1; /* ないなら -1のまま */
    while (str[i] != '\0') {  /* ヌル文字まで */
        if (str[i] == c) { /* ループ脱出の場合 */
            n = i;
            break;
        }
        i++;
    }

    printf("%sの%d番目です。\n", str, n+1);

    return 0;
}