USACO : name that number

#include <iostream>
#include <cstring>
#include <cstdio>
#include <fstream>

using namespace std;


char d[5000][20];
char m[26] = {'2','2','2','3','3','3','4','4','4','5','5','5','6','6','6','7','0','7','7','8','8','8','9','9','9','0'};
char num[20];

int main()
{
    ifstream fin;
    fin.open("dict.txt");
    ifstream in;
    in.open("namenum.in");
    ofstream fout;
    fout.open("namenum.out");
    int count = 0;
    while(fin >> d[count]){
        count++;
    }
    in >> num;
    int flag = 0;

    for(int i = 0; i < count; i++){
        int FLAG = 0;
        if(strlen(d[i]) != strlen(num)) continue;
        for(int j = 0; j < strlen(d[i]); j++){
             if((m[d[i][j] - 'A'] == num[j] )) continue;
            else{                    //字符的ascii码转成数值来比较
                FLAG = 1;
                break;
            }

         }
         if(!FLAG){
            flag = 1;
            fout << d[i] <<endl;
         }
     }
     if(!flag) fout<<"NONE"<<endl;
     return 0;
}

字符串进行比较比较,一般用char[][]二维数组比较方便。

原文地址:https://www.cnblogs.com/superjn/p/5530605.html