概述
题目来源:浙大PTA
本题要求实现函数,可以根据下表查找到星期,返回对应的序号。
序号 星期
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("%dn", n);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例1:
Tuesday
输出样例1:
2
输入样例2:
today
输出样例2:
wrong input!
对于这道题,我的思路是判断前两个字母是否相同。定义开关t,第一个相同进一,第二个不相同归零。对于更复杂的查找也可以用类似的思路,判断相同则t进一,不相同就利用数字t将指针归零,而后t归零继续查找。
解答:
int getindex( char *s )
{
char a[7][20]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
/*初始化用于查找的数组*/
int t=0;
/*定义一个开关*/
for(int i=0;i<7;i++)
{
if(*s==a[i][t])
/*扫描到数组第i行第0个字母并且相同*/
{
s++;t=1;
/*s指针向前移动一位,t进一*/
}
if(t)
/*扫描第i行第1个字母*/
{
if(*s==a[i][t])
/*发现相同*/
{
if(i==6) return 0;
/*根据题意,如果是周日返回0*/
return i+1;
/*如果不是周日,返回星期所代表的整数*/
}
else t=0;s--;
/*发现不相同,t归零,s归0*/
}
/*在更加复杂的字符查找中,只要让t归零,再写一个循环让s回到开头就好了*/
}
return -1;
/*完成了数组查找,发现都不满足前两个字母相同调教,返回-1*/
}
最后
以上就是无辜麦片为你收集整理的【C语言】查找星期(字符串查找)的全部内容,希望文章能够帮你解决【C语言】查找星期(字符串查找)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复