本题要求实现函数,可以根据下表查找到星期,返回对应的序号。
序号
星期
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;
}