Gu-f


私信TA

用户名:2417225563

访问量:14696

签 名:

等  级
排  名 1160
经  验 3143
参赛次数 7
文章发表 20
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:考虑到要判断字母、数字、空格和其他,因为其他的种类很多,所以我们放在最后进行统计,然后巧妙的利用if——else if——else结构即可完成要求。

注意事项:记得要#include <ctype.h>,这个头文件里有isalpha(判断字母)、isdigit(判断数字)这两个函数。

参考代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
int main()
{

    char a[100],b[4]={0};//第一行申请空间
    gets(a);//第二行获取输入
    for(int i=0;i<strlen(a);i++)//第三行循环结构
    {
        if(isalpha(a[i])) b[0]++;第四行判断字母
        else if(isdigit(a[i])) b[1]++;第五行判断数字
        else if(a[i]==' ') b[2]++;第六行判断空格
        else b[3]++;第七行判断其他
    }
    printf("%d %d %d %d",b[0],b[1],b[2],b[3]);第八行输出

    return 0;
}


 

0.0分

2 人评分

  评论区

#include<stdio.h>
#include<string.h>
int k=0;
int l=0;
int m=0;
int n=0;

int Tj(char a[], char b[])
{
	int i;
	int j=0;

	for(i=0; i<strlen(a); i++)
	{
		b[j]=a[i];
		j++;
	}

	for(j=0; j<strlen(a); j++)
	{
		if(('a'<b[j] && b[j]<'z') || ('A'<b[j] && b[j]<'Z'))
		{
			k++;
		}
		else if('0'<b[j] && b[j]<'9')
		{
			l++;
		}
		else if(b[j]==' ')
		{
			m++;
		}
		else
		{
			n++;
		}
	}
	return k,l,m,n;
}

int main()
{
	char a[1000];
	char b[1000];

	gets(a);
	Tj(a,b);

	printf("%d %d %d %d",k,l,m,n);
	return 0;
}           答案错误50%
2019-10-19 13:14:57
总有人不读题目
2019-09-10 00:14:27
头文件其实只要#include<stdio.h>就行了
2019-02-12 22:44:58
大侠,看一下我的,为嘛不行呢
#include <stdio.h>
#include <string.h>
void tj(char *a)    //定义函数
{
	int n=strlen(a); //求实际有效长度
	int i;
	int m=0,s=0,k=0,q=0;
	for(i=0;i<n;i++){
		if(a[i]==' ') k++;
		else if(a[i]>96&&a[i]<122) m++;
		else if(a[i]>64&&a[i]<91) m++;
		else if(a[i]>47&&a[i]<58) s++;
		else q++;
		a[i]=0;       //比较过后,将当前字符改为0;
	}
	a[0]=m+'0';
	a[1]=s+'0';
	a[2]=k+'0';       //将统计值改为字符类型
	a[3]=q+'0';       //并赋值给数组a的前4个元素,
}
int main()
{
	int i;
	char a[100]={0};
	gets(a);
	tj(a);
	for(i=0;i<5;i++){
	printf("%c ",a[i]);   //输出数组a的前4个元素
	}
	return 0;
}
2018-12-13 01:11:58
  • «
  • 1
  • »