谁能详细告诉我,为什么我要看这个程序的警告?

Can anyone tell me in details, why i am watching warning for this program?

#include<stdio.h>
#include<string.h>
int main()
{
    char input[102], output[210];
    int i=0;

    scanf("%s",input);

    for(i=0;i<strlen(input);i++)
    {
        if(tolower(input[i])=='o'|| tolower(input[i])=='i' || tolower(input[i])=='a' || tolower(input[i])== 'e'
           || tolower(input[i])=='u')
            continue;
        else
            printf(".%c",tolower(input[i]));

    }
}

当我运行这段代码时,它显示以下警告,

implicit declaration of function ‘tolower’ [-Wimplicit-function-declaration]

    if(tolower(input[i])=='o'|| tolower(input[i])=='i' || tolower(input[i])=='a' || tolower(input[i])== 'e'

有时输出出乎意料,比如我输入:

input::xnhcigytnqcmy

output::.x.n.h.c.g.y.t.n.q.c.m.y

预期输出:

.x.n.h.c.g.t.n.q.c.m

谁能告诉我我哪里出错了?

tolower() 的原型是 <ctype.h>。你必须包含这个头文件。