C ++程序查找字符串中字符的频率

字符串是一维字符数组,以空字符结尾。字符串中字符的频率是它们在字符串中出现的次数。例如-

String: Football is a sport

The frequency of alphabet o in the above string is 3

查找特定字母频率的程序如下。

示例

#include <iostream>

using namespace std;

int main() {

   char str[100] = "this string contains many alphabets";

   char c = 'a';

   int count = 0;

   for(int i = 0; str[i] != '\0'; i++) {

      if(str[i] == c)

      count++;

   }

   cout<<"Frequency of alphabet "<<c<<" in the string is "<<count;

   return 0;

}

输出结果

Frequency of alphabet a in the string is 4

在上面的程序中,for循环用于查找给定字符串的字母a的频率。在for循环中,如果str [i]等于字母,则count增加1。count的值显示为字母的频率。给出的代码片段如下。

for(int i = 0; str[i] != '\0'; i++) {

   if(str[i] == c)

   count++;

}

cout<<"Frequency of alphabet "<<c<<" in the string is "<<count;

查找字符串中所有字母的频率的程序如下所示。

示例

#include <iostream>

using namespace std;

int main() {

   char str[100] = "this string contains many alphabets";

   int i = 0, alphabet[26] = {0}, j;

   while (str[i] != '\0') {

      if (str[i] >= 'a' && str[i] <= 'z') {

         j = str[i] - 'a';

         ++alphabet[j];

      }

      ++i;

   }

   cout<<"字符串中所有字母的频率为:"<<endl;

   for (i = 0; i < 26; i++)

   cout<< char(i + 'a')<<" : "<< alphabet[i]<< endl;

   return 0;

}

输出结果

字符串中所有字母的频率为:

a : 4

b : 1

c : 1

d : 0

e : 1

f : 0

g : 1

h : 2

i : 3

j : 0

k : 0

l : 1

m : 1

n : 4

o : 1

p : 1

q : 0

r : 1

s : 4

t : 4

u : 0

v : 0

w : 0

x : 0

y : 1

z : 0

在上面的程序中,使用while循环查找字符串中所有字母的频率。数组Alphabet []存储所有字母的频率。变量j存储字母的数值,即a为0,b为1,依此类推。然后,将数组字母的第j个索引加1。这由以下代码段演示-

while (str[i] != '\0') {

   if (str[i] >= 'a' && str[i] <= 'z') {

      j = str[i] - 'a';

      ++alphabet[j];

   }

   ++i;

}

在评估了整个字符串之后,将打印字母的频率。如下所示。

cout<<"字符串中所有字母的频率为:"<<endl;

for (i = 0; i < 26; i++)

cout<< char(i + 'a')<<" : "<< alphabet[i]<< endl;

以上是 C ++程序查找字符串中字符的频率 的全部内容, 来源链接: utcz.com/z/316795.html

回到顶部