反向搜索,通过星期返回序号

错误代码

int getindex(char *s)
{
    char* s1[7]={"Sunday","Monday","Tuesday","Wednesday",
              "Thursday","Friday","Saturday"};
    int i;
    int flag=0;
    for(i=0;i<7;i++)
    {
        if(s1[i]==*s)
        {   flag=1;
            break;}
    }
    if(flag==0){return -1;}
    return i;
}

int getindex(char *s)
{
    char* s1[7]={"Sunday","Monday","Tuesday","Wednesday",
              "Thursday","Friday","Saturday"};
    int i;
    int flag=0;
    for(i=0;i<7;i++)
    {
        if(strcmp(s1[i],s)==0)
        {   flag=1;
            break;}
    }
    if(flag==0){return -1;}
    return i;
}

优化:flag冗余问题

#include <stdio.h>
#include <string.h>  // 添加字符串操作头文件

int getindex(const char *s) {  // 添加 const 限定符
    const char *s1[] = {        // 使用 const 修饰字符串常量
        "Sunday",
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",             // 修正拼写错误
        "Friday",
        "Saturday"
    };
    int i;
    
    for (i = 0; i < 7; i++) {
        if (strcmp(s1[i], s) == 0) {  // 使用 strcmp 进行字符串比较
            return i;  // 找到直接返回索引
        }
    }
    return -1;  // 未找到返回 -1
}

全部评论

相关推荐

09-11 19:49
门头沟学院 Java
做个有文化的流氓:对牛弹琴了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务