節日提示
題目:任意輸入英文的月份,在查找月份表後輸出其對應的中文提示。縮寫也可查找。
#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***************/
}
運行結果: