输入一串带空格的字符串


例题如下:输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数并输出结果

 

 

方法1:gets()函数

#include<stdio.h>

 

int main()

{

   char a[100];

   int i=0;

   int kg=0;

   int yy=0;

   int sz=0;

   int k=0;

   

   printf("请输入:");

   gets(a);

   printf("%s\n",a);

   

   while(a[i] != '\0')

    {

       if( a[i] == 32)

           kg++;

       

       if(a[i] >= 'a' & a[i] <='z')

           yy++;

          

       if(a[i] >= 'A' & a[i] <='Z')

           yy++;

 

       if(a[i] >= '0' & a[i] <='9')

           sz++;

       i++;

    }

   printf("空格有%d个\n",kg);

   printf("英语字母字符有%d个\n",yy);

   printf("数字字符有%d个\n",sz); 

 

   return 0;

}

 

此方法在vc++上编译时未报错,但是在Linux上编译时有一个waring,gets  function is dangerousand should not be used

 

方法二  getchar函数

#include <stdio.h>

int main()

{

         intch_num=0;

         intint_num=0;

         intspace_num=0;

         charch=getchar();

         while(ch!= '\n')

         {

             if(ch == ' ')

                       space_num++;

                       else if(ch >= '0' &&ch <= '9')

                            int_num++;

                            else if((ch >= 'A'&& ch <='Z')||(ch >= 'a' && ch <= 'z'))

                                ch_num++;

                                ch =getchar();

         }

        

         printf("ch_num=%d\nint_num=%d\nspace_num=%d\n",ch_num,int_num,space_num);

         return0;

        

 } 

方法3:scanf函数

#include<stdio.h>


int main()
{
    char a[100];
    int i=0;
    int kg=0;
    int yy=0;
    int sz=0;
    int k=0;
    
    printf("请输入:");
    scanf("%[^\n]",a);
  
    while(a[i] != '\0')
    {
        if( a[i] == 32)
            kg++;
        
        if(a[i] >= 'a' & a[i] <='z')
            yy++;
           
        if(a[i] >= 'A' & a[i] <='Z')
            yy++;


        if(a[i] >= '0' & a[i] <='9')
            sz++;
        i++;
    }
    printf("空格有%d个\n",kg);
    printf("英语字母字符有%d个\n",yy);
    printf("数字字符有%d个\n",sz);  
    
   
    return 0;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值