| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 397 人关注过本帖
标题:弄了半个晚上,弄个半成品,扫描字符串,并打印每个字符出现的频率
只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
结帖率:99.76%
收藏
已结贴  问题点数:20 回复次数:6 
弄了半个晚上,弄个半成品,扫描字符串,并打印每个字符出现的频率
#include<stdio.h>
#include<string.h>

void move(char *b,int benpos,int destpos)  
{  
  int c1=0,i;
  char *c;
  c=b;
  c1=strlen(b)-destpos+1;
  b+=benpos-1;
  c+=destpos-1;
  for(i=0;i<c1;i++)
  {
      *b=*c;
      b++;
      c++;
  }
  *b='\0';
 
}  

int main()
{
   
    int  t[256];
    int cnum[256];
    int i=0,j=0,k=0,l=0,len=0;

    for(i=0;i<256;i++)
    {
        t[i]=int('\0');
        cnum[i]=int('\0');
    }
    char s[]="aabsscdfaeddfcxg";
   
    while(1)
    {
        if(s[0]=='\0')
        {
            break;
        }
        t[j]=s[0];
        len=strlen(s);
        k=0;
        while(1)
        {
        
            if(s[k]==t[j])
            {
                move(s,k,k+1);
                l++;
               
            }
            if(s[k]==t[j])
            {
                k=0;
            }
            else
            {
                k++;
            }
            if(s[k]=='\0')
            {
                break;
            }
            cnum[j]=l;
        }
        j++;
        l=0;
    }
    i=0;
    while(1)
    {
        if(t[i]=='\0') break;
        printf("字符%c的个数是%d\n",t[i],cnum[i]);
        i++;
    }
    return 0;
}
之所以说半成品,就是结果不对,没重复的还好,有重复的就弄不准
有时间的大侠帮我看看  没时间等我有空继续研究

[ 本帖最后由 wp231957 于 2012-11-11 22:28 编辑 ]
搜索更多相关主题的帖子: 字符串 include 打印 半成品 
2012-11-11 22:27
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:10 
C primer plus书上貌似有这个例子

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-11-12 06:59
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用pauljames在2012-11-12 06:59:58的发言:

C primer plus书上貌似有这个例子
谢谢
第一,我没有这本书
第二,我想要自己的东东

DO IT YOURSELF !
2012-11-12 08:18
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:10 
打表

My life is brilliant
2012-11-12 08:32
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:0 
simple code

程序代码:
#include<stdio.h>

struct Count
{
    char c;
    int count;
};

int main()
{
    char test[]  = "aabsscdfaeddfcxg";
    struct Count conter[26];
    int i, len;
    //初始化
    for(i = 0; i < 26; i++)
    {
        conter[i].c = 97 + i;
        conter[i].count = 0;
    }
    len = sizeof(test) / sizeof(test[0]);
    for(i = 0; i < len; i ++)
    {
        conter[test[i]-97].count ++;
    }

    //打印输出
    for(i = 0; i < 26; i++)
    {
        if( conter[i].count )
        {
            printf("字符%c的个数是%d\n", conter[i].c, conter[i].count);
        }
    }
    return 0;
}

2012-11-12 11:24
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用newdos在2012-11-12 11:24:12的发言:

simple code
 
 
#include
 
struct Count
{
    char c;
    int count;
};
 
int main()
{
    char test[]  = "aabsscdfaeddfcxg";
    struct Count conter[26];
    int i, len;
    //初始化
    for(i = 0; i < 26; i++)
    {
        conter.c = 97 + i;
        conter.count = 0;
    }
    len = sizeof(test) / sizeof(test[0]);
    for(i = 0; i < len; i ++)
    {
        conter[test-97].count ++;
    }
 
    //打印输出
    for(i = 0; i < 26; i++)
    {
        if( conter.count )
        {
            printf("字符%c的个数是%d\n", conter.c, conter.count);
        }
    }
    return 0;
}
 
挺简单 相比之下 我写的太长了
晚上研究一下   谢谢

DO IT YOURSELF !
2012-11-12 11:26
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:0 
楼主有空可以研究一下数据结构,这个写法就是来自数据结构hash表的应用思路。
2012-11-12 11:32
快速回复:弄了半个晚上,弄个半成品,扫描字符串,并打印每个字符出现的频率
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038506 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved