笨方法实现字符串中字符频度的统计

 

1.先建立一个字母表,包含字母的大小写

2.输入需要统计频度的字符串。

3.用字符串中的字符去遍历字母表,频度存放在字母表的freq变量中。

如果大家有什么好方法,非常欢迎留言!

 

#include <stdio.h>
#define Maxsize 52
typedef struct{
 char data;
 int freq;//save the frequentness
}ElemType;

typedef struct{
 ElemType Word[Maxsize];
}Node;


//Creat a word list that include a~z,A~Z
Node CreateWordList(Node Word26)
{
 int j=0;
 char i;
  //for(i='A';i<='Z';i++,j++);
 i='A';
 while(i<='Z')
 {
  Word26.Word[j].data=i;
  Word26.Word[j].freq=0;
  j++;
  i++;
 }
 //for(i='a';i<='z';i++,j++);
 // Word26.Word[j].data=i;
  i='a';
 while(i<='z')
 {
  Word26.Word[j].data=i;
  Word26.Word[j].freq=0;
  j++;
  i++;
 }
 return Word26;
}

void main()
{
 int i=0,j=0;
 Node WordNode;
 Node Word26;
 char Input[10];
 Word26=CreateWordList(Word26);
 printf("input 10 word;\n");
 scanf("%s",Input);//input the string that you want to calculate the frequentness

 for(j=0;j<52;j++)//j record the Word26's Word position

 for(i=0;i<10;i++)//i record the input string array position
  if(Input[i]==Word26.Word[j].data)
   Word26.Word[j].freq++;

 
    for(j=0;j<52;j++)
  if(Word26.Word[j].freq)//print fliter
  printf(" %c: %d\n ",Word26.Word[j].data,Word26.Word[j].freq);//print the input word's frequentness
 
 getch();

}



 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用哈希统计每个字符出现的频度。具体步骤如下: 1. 定义一个哈希,用于存储每个字符出现的次数。 2. 遍历输入字符串的每个字符,如果该字符在哈希不存在,则将其加入哈希,并将其出现次数设为1;否则,将其出现次数加1。 3. 遍历哈希,输出每个字符及其出现次数。 示例代码如下: ``` #include <iostream> #include <unordered_map> #include <string> using namespace std; int main() { string s = "hello world"; unordered_map<char, int> freq; for (char c : s) { if (freq.find(c) == freq.end()) { freq[c] = 1; } else { freq[c]++; } } for (auto p : freq) { cout << p.first << ": " << p.second << endl; } return 0; } ``` 输出结果为: ``` h: 1 e: 1 l: 3 o: 2 : 1 w: 1 r: 1 d: 1 ``` ### 回答2: 要统计输入字符串各个不同字符出现的频度,可以按照以下步骤进行操作: 1. 接收输入的字符串。 2. 创建一个空的字典,用于存储字符及其出现的频度。 3. 遍历输入的字符串,对于每一个字符: - 如果字典不存在该字符,将其作为键,并设置频度为1。 - 如果字典已存在该字符,将其对应的频度加1。 4. 打印字典每个字符及其对应的频度。 下面是一个示例程序实现: ```python string = input("请输入字符串:") frequency = {} for char in string: if char in frequency: frequency[char] += 1 else: frequency[char] = 1 print("字符出现的频度:") for char, freq in frequency.items(): print(f"字符 {char} 出现 {freq} 次") ``` 假设输入的字符串为"Hello World!",程序将输出: ``` 字符出现的频度字符 H 出现 1 次 字符 e 出现 1 次 字符 l 出现 3 次 字符 o 出现 2 次 字符 出现 1 次 字符 W 出现 1 次 字符 r 出现 1 次 字符 d 出现 1 次 字符 ! 出现 1 次 ``` ### 回答3: 要统计输入字符串各个不同字符出现的频度,首先需要对输入字符串进行遍历。可以使用一个字典来存储每个字符及其出现的次数。 首先,创建一个空字典来存储字符频度。然后,使用一个for循环来遍历输入字符串的每个字符。在循环内部,检查字符是否已经在字典存在,若存在则将其对应的值加一;如果不存在,则将字符作为键添加到字典,并设置初始频度为1。 最后,输出统计结果。可以使用另一个for循环来遍历字典的键和值,并按照预设的格式输出每个字符和其对应的频度。 以下是一个示例代码: ```python def count_characters_frequency(input_str): # 创建空字典 char_frequency = {} # 遍历输入字符串的每个字符 for char in input_str: if char in char_frequency: # 字符在字典存在,则增加其频度 char_frequency[char] += 1 else: # 字符不在字典,则添加到字典,并设置初始频度为1 char_frequency[char] = 1 # 输出统计结果 for char, frequency in char_frequency.items(): print(f"字符 '{char}' 出现的频度为 {frequency}") ``` 使用上述函数来统计字符串 "Hello, World!" 各个不同字符频度,运行以下代码: ```python input_str = "Hello, World!" count_characters_frequency(input_str) ``` 输出结果将会是: ``` 字符 'H' 出现的频度为 1 字符 'e' 出现的频度为 1 字符 'l' 出现的频度为 3 字符 'o' 出现的频度为 2 字符 ',' 出现的频度为 1 字符 ' ' 出现的频度为 1 字符 'W' 出现的频度为 1 字符 'r' 出现的频度为 1 字符 'd' 出现的频度为 1 字符 '!' 出现的频度为 1 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值