统计字符串中全部字符出现的次数

统计字符串中所有字符出现的次数
示例一.

#include <stdio.h>
#include <string.h>

int main()
{
  char str[100];
  int num[26]={0,};
  int i, len;

  printf("str:");
  scanf("%s", str);
  len = strlen(str);

  for (i = 0; i < len; i++) {
    if (str[i] >= 'a' && str[i] <= 'z')
      num[str[i]-'a']++;
    else if (str[i] >= 'A' && str[i] <= 'Z')
      num[str[i]-'A']++;
  }

  for (i = 0; i < 26; i++) {
    if (num[i] != 0)
      printf("%c: %d\n", i+'a', num[i]);
  }

  return 0;
}

示例二.

#include <stdio.h>
#include <string.h>

int main()
{
  char str[100];
  char *p;
  int ch[26] = {0,};
  int len, i;

  printf("str:");
  scanf("%s", str);
  len = strlen(str);
  p = str;

  while(*p) {
    if (*p >= 'a' && *p <= 'z')
      ch[*p-'a']++;
    else if (*p >= 'A' && *p <= 'Z')
      ch[*p-'A']++;
    p++;
  }

  for (i = 0; i< 26; i++) {
    if (ch[i] != 0)
      printf("%c: %d\n", i+'a', ch[i]);
  }

  return 0;
}