标题:新手求助一个问题 编写一个用来统计输入统计的各个数字、空白符(空格、制表 ...
只看楼主
williou
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-11-16
结帖率:0
已结贴  问题点数:10 回复次数:5 
新手求助一个问题 编写一个用来统计输入统计的各个数字、空白符(空格、制表符、换行符)以及所有其他字符出现次数的程序
这下面是我编的代码。语法没报错。但是没结果,不知道哪里有问题。请各位大神帮我指正下。万分感谢!
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
    int spac=0;
    int others=0;
    int number[10];
    char line[100];
    int i=0;
    char t;
    char *pS={NULL};
   
    printf("please input the line:");
    while((*fgets(line,100,stdin))!='\n')
    {
        pS=(char*)malloc(strlen(line));
        strcpy(pS,line);
        
    }
   
    printf("%s",pS);
    while(1)
    {
        t=*pS;
        if(t>=0||t<=9)
        {
        switch(t)
        {
            case 0:
                number[0]++;
                break;
            case 1:
                number[1]++;
                break;   
            case 2:
                number[2]++;
                break;
            case 3:
                number[3]++;
                break;
            case 4:
                number[4]++;
                break;
            case 5:
                number[5]++;
                break;
            case 6:
                number[6]++;
                break;
            case 7:
                number[7]++;
                break;
            case 8:
                number[8]++;
                break;
            case 9:
                number[9]++;
                break;
        }
        }   
        else if(t==' '||t=='\t')
                spac++;
        else     others++;
        if(t=='\n')
            break;
        
        
    }
   
    printf("%d",spac);
    printf("%d",others);
    for(i=0;i<10;i++)
    {
        printf("%d",number[i]);
    }
    return 0;
}
搜索更多相关主题的帖子: include please number others 换行符 
2015-11-16 14:12
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
得分:0 
拿字符t跟0,1,2,3。。。数字比较。无结果。
switch语句里的代码永远不会执行

我们都在路上。。。。。
2015-11-16 14:27
williou
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-11-16
得分:0 
回复 2楼 hellovfp
非常感谢。但是有个问题,我将代码改成用if的语句后还是没有输出。是不是这个程序中用malloc分配内存的方式来输入字符串有问题?还是说这个while循环还是不对?
    while(1)
    {
        t=*pS;
        if(t=='0')            number[0]++;
        else if(t=='1')        number[1]++;
        else if(t=='2')        number[2]++;
        else if(t=='3')        number[3]++;
        else if(t=='4')        number[4]++;
        else if(t=='5')        number[5]++;
        else if(t=='6')        number[6]++;
        else if(t=='7')        number[7]++;
        else if(t=='8')        number[8]++;
        else if(t=='9')        number[9]++;
        else if(t==' '||t=='\t')    spac++;
        else     others++;
        if(t=='\n')    break;
        
        
2015-11-16 15:20
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
得分:10 
晕,你做了个死循环,pS指针压根就木有移动过。

我们都在路上。。。。。
2015-11-16 16:48
williou
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-11-16
得分:0 
回复 4楼 hellovfp
我将指针指向的内容赋值给t然后进行while循环,看他内部的内容和我的if条件比较。不好意思。指针我才刚看玩开始用。可能会有很多用错的地方,那请问这个循环该怎么改啊?
2015-11-16 17:10
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
得分:0 
倒,不明白指针时,别乱用,你的代码完全可以用数组解决,t=*pS++;很多无用变量和代码,r班主看到多半吐血。

我们都在路上。。。。。
2015-11-16 17:48



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




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

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