搜索
您的当前位置:首页正文

C语言-读入含空格的字符串

来源:好走旅游网

题目

输入一行字符,统计其中英文字母、空格、数字和其它字符的个数。

思路

解决:

定义足够大的数组,然后以%s为输入格式,一次性输入字符。然后再通过访问数组的每个元素得到其ASCII码,通过条件控制语句输出。

#include <stdio.h>
int main(void) {
      char str1[5];  
      scanf(%s”,str1);//注意:不用加&  
      printf("%s\n", str1);     
      return 0; 
}
  1. scanf()遇见空格就停止读取,无法统计空格的数目。

解决:

用gets()函数的话,遇到空格就不会返回了,遇到回车才返回。

#include <stdio.h>
int main(void) {
      char str1[5];  
      gets(str1);//与scanf的写法不同  
      printf("%s\n", str1);     
      return 0; 
}

代码

#include<stdio.h>
#include<string.h>
int main()
{
    char str[200];
    gets(str);//gets()和scanf()的输入格式不同。此处若用scanf()则总在空格键入时停止输入
    int n=strlen(str);
    int a[n];
    for(int i=0;i<n;i++){
        a[i]=str[i];
    }
    int w=0,x=0,y=0,z=0;
    for(int j=0;j<n;j++){
        if(a[j]>=65&&a[j]<=90){
            w++;
        }
        else if(a[j]>=97&&a[j]<=122){
            w++;
        }
        else if(a[j]==32){
            x++;
        }
        else if(a[j]>=48&&a[j]<=57){
            y++;
        }
        else{
            z++;
        }
    }
    printf("%d\n%d\n%d\n%d",w,x,y,z);
}

参考资料

  1. http://m.biancheng.net/view/232.html
  2. https://zhidao.baidu.com/question/54103433.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Top