C:什么是在读取字符串时对整个 ascii 表进行频率计数(尽可能接近)的可读方法

标签 c string count

从这个网站 http://www.programmingsimplified.com/c-program-find-characters-frequency 他们有一个示例可以计算 a - z 但不计算 A-Z 或空格或标准标点符号。

  while ( string[c] != '\0' )
  {
     /* Considering characters from 'a' to 'z' only */

     if ( string[c] >= 'a' && string[c] <= 'z' ) 
        count[string[c]-'a']++;

     c++;
  }

  for ( c = 0 ; c < 26 ; c++ )
  {
     if( count[c] != 0 )

最佳答案

要计算字符串中的所有字符,请使用 int a[256] 并将字符串的字符用作数组的索引并递增:

int counts[256] = { 0 }; /* Initialize all elements to zero. */

while (string[c]) counts[(unsigned char)string[c++]]++;

关于C:什么是在读取字符串时对整个 ascii 表进行频率计数(尽可能接近)的可读方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14904674/

相关文章:

javascript - 为什么 String(null) 有效?

sql - 试图获得计数结果集的平均值

c - C中是否有本地时间的反向功能?

c - 为什么在以下 C 代码中出现段错误

C,结构中的枚举,错误C2016,头文件

sql - MS ACCESS 计数/总行数,无重复

mysql - 为什么 MySQL 对简单查询的计数不正确?

c - stdint.h 和 C99

Java匹配两个字符串之间的每两个序列字符

java - 是否可以将几个 StringArray 值写入一个 String 中?