zoukankan      html  css  js  c++  java
  • c 统计字符串中字符出现的个数

    1、单纯用数组来解题

    思路:从左往右循环,每次碰到一个字符就和左边的字符串比较,如果有相同的就右移,如果没有找到相同的就从这个位置向右统计个数并输出。

     1 #include<stdio.h>
     2 
     3 void calCount(char arr[])
     4 {
     5         int i,j,count,had;
     6         i = j = count = had = 0;
     7         while(arr[i] != '')
     8         {
     9                 count = 0;
    10                 had = 0;
    11                 for(j=0; j<i; j++)
    12                 {
    13                         if(arr[j] == arr[i])
    14                         {
    15                                 had = 1;
    16                                 break;
    17                         }
    18                 }
    19                 if(had == 1)
    20                 {
    21                         i++;
    22                         continue;
    23                 }
    24                 else
    25                 {
    26                         count++;
    27                         j = i+1;
    28                         while(arr[j] != '')
    29                         {
    30                                 if(arr[j] == arr[i])
    31                                         count++;
    32                                         j++;
    33                         }
    34                         printf("%c%d,",arr[i],count);
    35                 }
    36                 i++;
    37         }
    38 }
    39 
    40 int main(void)
    41 {
    42         char arr[50];
    43         scanf("%[^.]", arr);//接收任何字符,碰到'.'就结束,
    44         printf("%s
    ", arr);
    45         calCount(arr);
    46         return 0 ;
    47 }

    2、用ASCII码来计算

     1 #include<stdio.h>
     2  
     3    void getChCount(char *p)
     4    {
     5        char arr[127] = {0};
     6        int i;
     7        while(*p != '')
     8        {
     9            arr[*p]++;
    10           p++;
    11       }
    12       for(i=0; i<127; i++)
    13       {
    14           if(arr[i] > 0)
    15               printf("%c%d
    ",i,arr[i]);
    16       }
    17   }
    18   
    19   int main(void)
    20   {
    21       char brr[100];
    22       scanf("%[^.]",brr);//遇到字符.停止接收字符
    23       getChCount(brr);
    24       return 0;
    25   }
  • 相关阅读:
    常用录屏工具
    python常用工具库介绍
    修改anaconda3 jupyter notebook 默认路径
    【转载】面试那些事【三】
    【转载】面试那些事【二】
    【转载】面试那些事【一】
    Myeclipse 激活代码 8.6以前的版本
    ddd
    Java 算法
    Java 水仙花数
  • 原文地址:https://www.cnblogs.com/lhy5678888/p/4414070.html
Copyright © 2011-2022 走看看