靳长恭 2022-09-19 18:30 采纳率: 92.7%
浏览 32
已结题

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]呢?

  • 写回答

1条回答 默认 最新

  • a5156520 2022-09-19 19:09
    关注

    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 9月27日
  • 已采纳回答 9月19日
  • 创建了问题 9月19日

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用