6-9 查找星期 (20分)

本题要求实现函数,可以根据下表查找到星期,返回对应的序号。

序号
星期

0
Sunday

1
Monday

2
Tuesday

3
Wednesday

4
Thursday

5
Friday

6
Saturday

函数接口定义:
int getindex( char *s );

函数getindex应返回字符串s序号。如果传入的参数s不是一个代表星期的字符串,则返回-1。
裁判测试程序样例:
#include <stdio.h>
#include <string.h>

#define MAXS 80

int getindex( char *s );

int main()
{
int n;
char s[MAXS];

scanf("%s", s);
n = getindex(s);
if ( n==-1 ) printf("wrong input!\n");
else printf("%d\n", n);

return 0;

}

/* 你的代码将被嵌在这里 */

输入样例1:
Tuesday

输出样例1:
2

输入样例2:
today

输出样例2:

wrong input!

int getindex( char *s )
{
    char *d[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
    int i;//用strcmp必须是同一类型,故定义为指针型的
    for(i=0;i<=6;i++)
    {
        if(strcmp(s,d[i])==0)//比较字符串
        break;
    }
    if(i==7)
    i=-1;
    return i;
}

法二(二维数组)

int getindex( char *s )
{
    char d[7][10]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
    int i;//d[7][10]中10是最长字符串的长度+1;
    for(i=0;i<=6;i++)//二维数组的数组名是二级的,d[i]就是一级的;
    {
        if(strcmp(s,d[i])==0)//两个[]是访问一个字符,一个是一级指针,表示一个字符串。
        break;
    }
    if(i==7)
    i=-1;
    return i;
}
发布了24 篇原创文章 · 获赞 2 · 访问量 503

猜你喜欢

转载自blog.csdn.net/qq_45728926/article/details/104105082