0
#include <iostream>
#include <string>
#define SIZE_LETTERS (254)

using namespace std;

void analyzeF(const string *input, char a, int *freq) {
    for (int i = 0; i < (input)->length(); ++i) {
            if ((*input)[i] == a)
                    ++(*freq);      
    }
}

int main() {
    int freq = 0;

    string input = "53\u2021\u2021\u2020305))6*;4826)4\u2021.)4\u2021);806*;48\u2020860))85;;]8*;:\u2021*8\u202083(88)5*\u2020;46(;88*96*?;8)*\u2021(;485);5*\u20202:*\u2021(;4956*2(5*\u20144)88*;4069285);)6\u20208)4\u2021\u2021;1(\u20219;48081;8:8\u20211;48\u202085;4)485\u2020528806*81(\u20219;48;(88;4(\u2021?34;48)4\u2021;161;:188;\u2021?;";
    char c;

    cout << "Please enter a character to be matched: " << endl;
    cin >> c;
    analyzeF(&input, c, &freq);

    double result = (double)freq/SIZE_LETTERS;
    cout << "The frequency for " << c << " is:" << result << endl;
    return 1;
}

编写此程序是为了检测字符串中使用的字符的频率。

当我执行程序时,无论我为 char c 键入什么,输出值都是 0。

但是,当我在 gdb 中调试它时,它会给出正确的结果。例如 8 的频率是 0.133858。

我用来生成 .o 对象的命令是:

g++ -g c.cpp -o c
./c
4

0 回答 0