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***************/
}

運行結果:在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章