| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 492 人关注过本帖
标题:新手上路,求大神开道。
只看楼主 加入收藏
w838068053
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-1-6
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:9 
新手上路,求大神开道。
输入一串字符,判断多少数字,大小写字母,空格和其他字符。本人刚学编程,暂时对指针不熟,从网上开了一点点,写出下面程序,求大神指出错误。谢谢啊
#include <stdio.h>
void main()
{
char a[100];
int i,j=0,k=0,l=0,m=0,n=0;
gets(a);
for(i=0;i<100;i++)
{if (a[i]=="\0")
goto end;
else if(a[i]>="0"&&a[i]<="9")
j++;
else if(a[i]>="a"&&a[i]<="z")
k++;
else if(a[i]>="A"&&a[i]<="Z")
l++;
else if(a[i]==" ")
m++;
else n++;}
end:printf("%d %d %d %d %d \n",j,k,l,m,n);
}
搜索更多相关主题的帖子: 新手上路 include 学编程 网上 
2015-01-07 09:31
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
作业?
2015-01-07 09:43
w838068053
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-1-6
收藏
得分:0 
不是
2015-01-07 09:46
w838068053
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-1-6
收藏
得分:0 
为啥木有人为我排忧解难啊,俺只是想好好学学c程,刚大体看完一遍网上的教程,有些地方不是很熟,就找了网上那100道编程题练练手,第17道就没有编出来,我很伤心,我感觉我和答案的编程软件有差,它的我也运行不出来。怎么就没人管额呢?另附原题答案。
【程序17】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n'.
      
2.程序源代码:
#include "stdio.h"
main()
{char c;
 int letters=0,space=0,digit=0,others=0;
 printf("please input some characters\n");
 while((c=getchar())!='\n')
 {
 if(c>='a'&&c<='z'||c>='a'&&c<='z')
  letters++;
 else if(c==' ')
  space++;
   else if(c>='0'&&c<='9')
       digit++;
     else
       others++;
}
printf("all in all:char=%d space=%d digit=%d others=%d\n",letters,
space,digit,others);
}
2015-01-07 09:54
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:10 
程序代码:
#include <stdio.h>

int main(void) {
    char arr[100], *a = arr;
    int j = 0, k = 0, l = 0, m = 0, n = 0;
    fgets(a, 99, stdin);

    while(*a != '\0') {
        if(*a >= '0' && *a <= '9')
            j++;

        else if(*a >= 'a' && *a <= 'z')
            k++;

        else if(*a >= 'A' && *a <= 'Z')
            l++;

        else if(*a == ' ')
            m++;

        else n++;

        a++;
    }

    printf("数字:%d\n小写:%d\n大写:%d\n空格:%d\n其它:%d\n",
           j, k, l, m, n);
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-01-07 09:59
w838068053
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-1-6
收藏
得分:0 
回复 5楼 longwu9t
有没有不用指针的?我从网上找到过用指针的答案,能编译成。我理解指针反正指向了字符串的一个个地址,我用a【i】代替*p为啥不行啊?求解答
2015-01-07 10:03
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:5 
回复 6楼 w838068053
你的代码不是错在用不用指针

你能分辨英文的单双引号在C语言里的用途吧?

Only the Code Tells the Truth             K.I.S.S
2015-01-07 10:05
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
双引号里面的内容代表的是字符串  而字符串是不能用==来比较的   只有单引号里面的才代表的是字符 char类型 是可以使用==来比较的

DO IT YOURSELF !
2015-01-07 10:08
w838068053
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-1-6
收藏
得分:0 
回复 7楼 longwu9t
如果把程序里的双引号换成单引号能成功是吧,我的电脑是公司的,日本货,输入字符好多找不到,我以为输出字符用双引号就成,我下去试试,成了就可以结贴了
2015-01-07 10:08
w838068053
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2015-1-6
收藏
得分:0 
谢谢各位了,新手小白给大家添麻烦了。
2015-01-07 10:11
快速回复:新手上路,求大神开道。
数据加载中...
 
   



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

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