C语言判断字母是否连续递增

int  fun( char  *t )
{
    int i = 0, k = 0;
    while(t[i+1])
    {
        if (t[i + 1] == t[i] + 1)
        {
            k++;
            i++;
        }
        else
        {
            k = 0;
            break;
        }
    }
    return k ;

}

img


为什么这个while()里要填t[i+1]呢?

t[i+1]是值下一个元素的值,如果他是字符串结尾字符空字符'\0'就会结束,如果不是,则while循环体内判断t[i+1]和它的前一元进行字母连续的判断,如此不断循环,直到达到字符串结尾。测试代码如下:

#include <stdio.h> 
int  fun( char  *t )
{
    int i = 0, k = 0;
    while(t[i+1])
    {
        if (t[i + 1] == t[i] + 1)
        {
            k++;
            i++;
        }
        else
        {
            k = 0;
            break;
        }
    }
    return k ;
 
}
 
int main(void){
    
    char *  str= "uvwxyz";
    printf("%s是连续的字母顺序吗?%s\n" , str,(fun(str)>0?"是。":"否。"));
    
    str= "uvxwyz";
    printf("%s是连续的字母顺序吗?%s\n" , str,(fun(str)>0?"是。":"否。"));
    
    return 0;
} 

img