c ++程序,用于计算字母字符的字母字符的出现次数

时间:2018-09-19 04:20:52

标签: c++

  

在c ++中创建一个程序来计算字母字符的出现次数,该字母字符会计算字符串中的字母

     

我遇到了不同的代码,但是对我们的教授来说没有什么好,我的教授只想要#include <iostream>#include<conio.h>using namespace std;,用户输入的字母就是印刷品或成果

这可能会有所帮助,这是我教授以前的代码:

    for(int y=0; y<=9; y++){
        int counter=0;
        for (int x=0; x<=99;x++){
            if (refchar[y]==userchar[x]){
                counter++;
            }
        }
        cout<<refchar[y]<<"="<<counter <<"\n";
    }  
    getch();
    return 0;  
}

这是我的代码:

int main(){
    string refchar="char alphabet[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N',
                    'O','P','Q','R','S','T','U','V','W','X','Y','Z'};
";
    char userchar[500]="";
    cout<<"Enter number:";
    cin>>userchar;

    for(int y=0; y<=9; y++){
        int counter=0;
        for (int x=0; x<=99;x++){
            if (refchar[y]==userchar[x]){
                counter++;
            }
        }
        cout<<refchar[y]<<"="<<counter <<"\n";
    }  
    getch();
    return 0;  
}

4 个答案:

答案 0 :(得分:0)

要计算stringstd::map<char, int> occurrences; for (const auto& character : the_string) { occurrences[character]++; } 的出现次数,您可以执行以下操作:

char

现在可以在occurrences映射中查找/使用所有可能的<activity android:name=".ui.chat.ChatActivity" android:windowSoftInputMode="adjustResize|stateAlwaysHidden"/> 作为键,并且该值将是该字符的计数。

答案 1 :(得分:0)

即使这不是一个好的代码,您也只要求这三个标头,所以我写了这样的代码:

#include <iostream>
using namespace std;

int main() {
    char userchar[500]="";
    cin.getline(userchar, sizeof userchar);
    int charscnt[128] = {0,};
    int idx = 0;

    while (userchar[idx] != 0) {
        charscnt[static_cast<int>(userchar[idx])]++;
        idx++;
    }

    for (int i = 0; i < sizeof charscnt / sizeof(int); i++) {
        if (charscnt[i] != 0) {
            cout << static_cast<unsigned char>(i) << "=" << charscnt[i] << endl;
        }
    }

    return 0;  
}

逻辑类似于使用Jasper中提到的map,但是我使用了一个小的数组来模拟map。

答案 2 :(得分:0)

在不使用来自string.h和stdlib.h的字符串处理命令的情况下,一次仍然可以通过逐个字节地遍历字符串直到找到终止的'\ 0'字节来完成此操作。

当然,我们也假设一组简单的1 letter = 1 byte个字符。它通常比这更复杂,并且您可能需要处理多字节字母等。

#include <iostream>
const int ALPHABET_SIZE = 256;  // maximum size of iso-8859-1 / ASCII

int main(int argc, char **argv)
{
    int i;
    const char *input="Some input string to search";   // string to process
    unsigned int counts[ALPHABET_SIZE];         // used to tally found letters

    // initialise the count table
    for (i=0; i<ALPHABET_SIZE ; i++)
        counts[i] = 0;

    // c-strings are terminated with a '\0' character
    // step through each character, tallying it up
    const char *ptr = input;
    while (*ptr != '\0')
    {
        int letter_num = (int)(*ptr);  // a letter is just a number
        counts[letter_num] += 1;
        ptr += 1;
    }

    // print the count table
    for (i=0; i<ALPHABET_SIZE ; i++)
    {
        // if we have that letter
        if (counts[i] > 0)
            std::cout << (char)i << " => " << counts[i] << "\n";
    }

    return 0; // all is ok
}

答案 3 :(得分:0)

最好的衬垫是使用     std :: count

查看自我说明代码:

#include <iostream>
#include <algorithm>
#include <string>

int main()
{
    std::string s = "Hi How Are You Doing ?";
    size_t n = std::count(s.begin(), s.end(), ' ');
    std::cout << n;
}