| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 353 人关注过本帖
标题:字符串处理问题
只看楼主 加入收藏
lixiaoyao776
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-10-27
结帖率:80%
收藏
已结贴  问题点数:12 回复次数:5 
字符串处理问题
输入任意长度的大写字母,小写字母,数字,符号,空格。。。等,要求分别输出大写字母,小写字母,数字,并统计他们的个数 ,并将大小写转换后输出。。#include <stdio.h>
#include <string.h>
int main()
{
   int i,daxie,xiaoxie,big,small,number;
    big=small=number=0;
   char ch;

   printf("\t请输入任意长度大小写字母、数字符号:");
   while(ch=getchar(),ch!='\n')

   {
       if(ch>='A'&&ch<='Z')     
           big++;
       {
          printf("大写字母个数为:%d\t",big);
       }
      


   }


   return 0;

} 想这样统计个数,可是貌似不可以啊。。。还有要分别输出这个怎么做?
搜索更多相关主题的帖子: 字母 include number 字符串 
2012-11-07 12:24
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
#include<stdio.h>
main()
{
    int i,a=0,b=0,c=0,d=0,e=0;
    char j;
    for(i=0;i<10;i++)
    {
        scanf("%c",&j);
        if(j>=65&&j<=90)a++;
        else if(j>=97&&j<=122)b++;
        else if(j>=48&&j<=57)c++;
        else if(j==32)d++;
        else e++;
    }
    printf("%d,,,,%d,,,,,,%d,,,,,%d,,,,,,%d",a,b,c,d,e);
    return 0;
}仅供参考,不足为信
本人新手说错勿怪。。。。

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-07 14:15
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
修改了一下
程序代码:
#include<stdio.h>
#include<conio.h>
main()
{
    int i,a=0,b=0,c=0,d=0,e=0;
    int j;
    for(;;)
    {
        j=getchar();


        if(j>=65&&j<=90)a++;
        else if(j>=97&&j<=122)b++;
        else if(j>=48&&j<=57)c++;
        else if(j==' ')d++;
        else if(j>14&&j<48||j>57&&j<65||j>90&&j<97||j>122)e++;
        else if (j='\r') break;


     }
    printf("%d,,,,%d,,,,,,%d,,,,,%d,,,,,,%d",a,b,c,d,e);
    return 0;
}
其中第5个if处有待修改,但是我没想到好办法
本人新手,说错勿怪

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-07 14:40
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
最后一个if处可改为 else if ('\r')break;
本人新手,说错勿怪


认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-07 14:48
lwb603569640
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:283
专家分:436
注 册:2012-11-9
收藏
得分:0 
解答这个问题的思路是   
1.确定几个计数器
2.编写一个循环对字符串迭代,直到遇见‘\0’
3.每一次循环,都用级联if语句判断字符串相应字符属于哪类,这样就对哪一类字符的计数器自增。

源代码就是二楼的这样。。。。

自由、民主、宪政!
2012-11-09 14:47
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:12 
这个实现了楼主的所有功能,仅供参考,自己多想想!
#include<stdio.h>
int main()
{
    int a=0,b=0,c=0,d=0,e=0;
    int ia=0,ib=0,ic=0,i=0;
    char a_str[1000]="";
    char b_str[1000]="";
    char c_str[1000]="";
    char str[1000]="";
    char ch;
    printf("请输入一行字符串:");
    while(1)
    {
        ch=getchar();
        if(ch>='a'&&ch<='z')
        {  a++;  a_str[ia++]=ch;  ch=ch-('a'-'A');  }
        else
        if(ch>='A'&&ch<='Z')
        {  b++;  b_str[ib++]=ch;  ch=ch+('a'-'A');  }
        else
        if(ch>='0'&&ch<='9')
        {  c++;  c_str[ic++]=ch;  }
        else
        if(ch==' ')        d++;
        else
        if(ch=='\n')        break;
        else            e++;
        str[i++]=ch;
    }
    printf("小写字母%d个!\n",a);
    if(a!=0)
    printf("%s\n",a_str);
    printf("大写字母%d个!\n",b);
    if(b!=0)
    printf("%s\n",b_str);
    printf("数字%d个!\n",c);
    if(c!=0)
    printf("%s\n",c_str);
    printf("空格%d个!\n",d);
    printf("其他符号%d个!\n",e);

    printf("大小写转换后:%s\n",str);
    return 0;
}

小小战士,战士中的战斗机!
2012-11-09 20:00
快速回复:字符串处理问题
数据加载中...
 
   



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

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