标题:关于string的问题
只看楼主
alicefioan37
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-9-29
 问题点数:0 回复次数:4 
关于string的问题
要求用户随意输入一串英文小写字母,,然后把这些字母换成大写的,然后再算出频率,和百分比率, 如下

[align=center]Letter

[/align]

[align=center]Occurrence

[/align]

[align=center]Percentage

[/align]

[align=center]---------

[/align]

[align=center]------------------

[/align]

[align=center]-----------------

[/align]

[align=center]A

[/align]

[align=right]4

[/align]

[align=right]

[/align]

[align=center]8%

[/align]

[align=center]B

[/align]

[align=right]1

[/align]

[align=right]

[/align]

[align=center]2%

[/align]

[align=center]C

[/align]

[align=right]1

[/align]

[align=right]

[/align]

[align=center]2%

[/align]

[align=center]D

[/align]

[align=right]2

[/align]

[align=right]

[/align]

[align=center]4%

[/align]

[align=center]E

[/align]

[align=right]12

[/align]

[align=right]

[/align]

[align=center]25%

[/align]

[align=center]F

[/align]

[align=right]1

[/align]

[align=right]

[/align]

[align=center]2%

[/align]

[align=center]G

[/align]

[align=right]1

[/align]

[align=right]

[/align]

[align=center]2%

[/align]

[align=center]H

[/align]

[align=right]3

[/align]

[align=right]

[/align]

[align=center]6%

[/align]

[align=center]I

[/align]

[align=right]2

[/align]

[align=right]

[/align]

[align=center]4%

[/align]

[align=center]K

[/align]

[align=right]1

[/align]

[align=right]

[/align]

[align=center]2%

[/align]

[align=center]L

[/align]

[align=right]1

[/align]

[align=right]

[/align]

[align=center]2%

[/align]

[align=center]N

[/align]

[align=right]2

[/align]

[align=right]

[/align]

[align=center]4%

[/align]

[align=center]O

[/align]

[align=right]2

[/align]

[align=right]

[/align]

[align=center]4%

[/align]

[align=center]R

[/align]

[align=right]1

[/align]

[align=right]

[/align]

[align=center]2%

[/align]

[align=center]S

[/align]

[align=right]2

[/align]

[align=right]

[/align]

[align=center]4%

[/align]

[align=center]T

[/align]

[align=right]4

[/align]

[align=right]

[/align]

[align=center]8%

[/align]

[align=center]V

[/align]

[align=right]2

[/align]

[align=right]

[/align]

[align=center]4%

[/align]

[align=center]W

[/align]

[align=right]6

[/align]

[align=right]

[/align]

[align=center]13%

[/align]


下面是我写的第一部分,转换成大写字母.,请教大侠们,怎么算字母出现频率和百分比

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

void ToUpper (int);
void PrintResult ( int);

char a[80];

void main ()
{
 int c;
 
 printf("please enter a string\n");
 gets(a);
 while( c !=0)
 {
 
  ToUpper( c);
 
  //PrintfResult ( c);

  printf("please enter a string\n");
     gets(a);
 }
}
void ToUpper ( int c)
{
 int i;
 long l;
 
 l=strlen(a);
 
 for(i=0; i<l;i++)
  if (a[i]>96 &&a[i]<123)
   a[i]=a[i]-32;
 
 puts(a);
 
}
搜索更多相关主题的帖子: string 频率 字母 align 小写 
2007-12-04 14:10
kidd2005
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-11-2
得分:0 
大概思路就是每个字母出现一次就+1,最后除以总字数就是了吧?
不过实现起来好像比较烦~(本人菜鸟,如果思路有误请多多指教)
另外,有个贴子刚刚说过void main(int)形式不合标准,请LZ注意~

潜心苦C,却发觉百C不得其解啊~
2007-12-04 15:17
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
得分:0 
/* 一个简单的示例程序 */

#include <stdio.h>
#include <ctype.h>  /* toupper() */

int main(void)
{
    int ch;
    int ar[26] = {0}; /* 初始化,使数组全部元素为 0 */
    int count = 0, i;
   
    printf("please enter a string\n");
   
    while((ch = getchar()) != EOF && ch != '\n')
    {
        ch = toupper(ch);
        if(ch >= 'A' && ch <= 'Z')
            ar[ch - 'A']++;
        count++;
        putchar(ch);
    }
    putchar('\n');
   
    printf("Letter Occurrence Percentage\n");
    for(i = 0; i < 26; i++)
    {
        printf("%c      %d          %.0lf%%\n",
               'A' + i, ar[i],    (double)ar[i] / (double)count * 100.0);
    }

    getchar();
    return 0;
}

[[italic] 本帖最后由 cosdos 于 2007-12-4 16:34 编辑 [/italic]]

—>〉Sun〈<—
2007-12-04 15:53
kidd2005
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-11-2
得分:0 
果然高手,我开始还以为26个字母要一个一个地写,谁知可以用++来表达

潜心苦C,却发觉百C不得其解啊~
2007-12-04 16:25
alicefioan37
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-9-29
得分:0 
真是高手,,谢谢啦
2007-12-05 12:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-190302-1-1.html




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

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