USACO Section 1.2 : Name That Number

本文介绍了一个简单的C语言程序,该程序将输入文件中的英文名字转换为对应的电话按键数字,并对比字典文件中的条目来查找匹配的名字。通过读取输入文件和字典文件,程序实现了对每个字母到数字的映射,最终输出匹配的名字或‘NONE’。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# include <stdio.h>
# include 
<string.h>

char check(char x)
{
  
switch(x)     
    {
      
case 'A'return '2';
      
case 'B'return '2';
      
case 'C'return '2';
      
case 'D'return '3';
      
case 'E'return '3';
      
case 'F'return '3';
      
case 'G'return '4';
      
case 'H'return '4';
      
case 'I'return '4';
      
case 'J'return '5';
      
case 'K'return '5';
      
case 'L'return '5';
      
case 'M'return '6';
      
case 'N'return '6';
      
case 'O'return '6';
      
case 'P'return '7';
      
case 'R'return '7';
      
case 'S'return '7';
      
case 'T'return '8';
      
case 'U'return '8';
      
case 'V'return '8';
      
case 'W'return '9';
      
case 'X'return '9';
      
case 'Y'return '9';
    }
}

main ()
{
   FILE 
*in=fopen ("namenum.in","r");
   FILE 
*out=fopen("namenum.out","w");
   FILE 
*dic=fopen("dict.txt","r");
   
   
char name[5000][15],fin[15],checkit[15];
   
int i,j,t=0;
   fscanf (
in,"%s",fin);
   
for (i=0;!feof(dic);i++)
   {
      memset(checkit,
'\0',sizeof(checkit));
      fscanf (dic,
"%s",name[i]);
      
for (j=0;name[i][j]!='\0';j++)
         checkit[j]
=check(name[i][j]);
      
if (strcmp(fin,checkit)==0)
      {
         fprintf (
out,"%s\n",name[i]);
         t
++;
         }
      }
   
if (t==0)
      fprintf (
out,"NONE\n");
   fclose(
in);
   fclose(
out);
   fclose(dic);
   exit(
0);
}

转载于:https://www.cnblogs.com/vistach/archive/2009/08/01/1536635.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值