educoder指针应用之节日提示

节日提示

题目:任意输入英文的月份,在查找月份表后输出其对应的中文提示。缩写也可查找。

#include  <stdio.h>
#include  <string.h>
#define   MONTHS  12
#define   MAX_LEN  20         	//字符串最大长度

int FindWord(char mws[][MAX_LEN],int n,char x[]);
int main(void)
{
	int    pos1,pos2;
	char   x[MAX_LEN];
	char   monthsWords[][MAX_LEN] = {"January","February","March","April",
					"May","June","July","August",
					"September","October","November","December"};//输入 
	char   monthsAbbr[][MAX_LEN] = {"Jan.","Feb.","Mar.","Apr.",
					"May.","Jun.","Jul.","Aug.",
					"Sept.","Oct.","Nov.","Dec."};//输入 
    	char monthsChinese[][MAX_LEN] = {"元月元旦","二月春节","三月植树","四月清明","五月劳动",
                            		"六月儿童","七月七夕","八月中秋","九月开学","十月国庆",
                            		"十一月光棍","十二月圣诞"};//输出 
	printf("Please enter a string:\n");
	scanf("%s", x);             	//输入待查找的字符串

	/***************Begin**************/
		//此处应用函数调用
		pos1 = FindWord(monthsWords,MONTHS,x);
		pos2 = FindWord(monthsAbbr,MONTHS,x);

	/***************End***************/


	if (pos1>=0)        		//找到标志为真,说明找到
	{
		  printf("%s: %s\n", x, monthsChinese[pos1]);
		  //printf("%s: %s\n", x, *(monthsChinese+pos1));
	}
	else if(pos2>=0)
    	{
		  printf("%s: %s\n", x, monthsChinese[pos2]);
		  //printf("%s: %s\n", x, *(monthsChinese+pos2));
	}
	else                		//找到标志为假,说明未找到
	{
		  printf("Not found!\n");
	}
     return 0;
}

//在单词表中找x字符串,若找到,返回其位置(位置从0开始)
//若找不到则返回-1
int FindWord(char mws[][MAX_LEN],int n,char x[])
{
	/***************Begin**************/
    char *p;
    p = x;
    for(int i = 0;i < MONTHS;i++)
    {
        if(strcmp(mws[i],p)==0)
        {
        	return i;
		}
    }
    return -1;
	/***************End***************/
}

运行结果:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sevenlob

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值