算法初步——哈希表B1042字符统计(注意如何读取带空格的字符串)

 

 

#include<math.h>
#include <cstring>
#include <cstdio>
const int MAX_LEN = 1010;
char str[MAX_LEN];
int hashTable[30] = {0};
int main(){
    fgets(str,1010,stdin);
    int len = strlen(str);
    for(int i =0;i<len;++i){
        if(str[i] >='a' && str[i] <= 'z'){
            hashTable[str[i] - 'a']++;
        }else if(str[i] >= 'A' && str[i] <= 'Z'){
            hashTable[str[i] - 'A']++;
        }
    }
    int  k = 0;
    for(int i =0;i<26;++i){
        if(hashTable[i] > hashTable[k]){
            k = i;
        }
    }
    printf("%c %d\n",'a'+k,hashTable[k]);
    //system("pause");
    return 0;
} 

卡在输入带空格的字符串上了。 

读取带空格的字符串不能使用scanf 和 cin 。 可以使用gets, 但在PAT系统里 gets编译出错, 所以只能使用 fgets 

posted @ 2020-01-06 21:24  JasonPeng1  阅读(196)  评论(0编辑  收藏  举报