c语言 对任意输入的字符串,统计其中的大写字母和小写字母的个数

//6、编写程序,对任意输入的字符串,统计其中的大写字母和小写字母的个数。
//例如, 输入字符串:AAaaBBb123CCccccd,则应输出结果:upper = 6, lower = 8。
#include <stdio.h>
#include <string.h>
void tongji (char str)
{
int i,n=0,k=0,a;
void out (int k,int n);
for(i=0;i<=strlen(str);i++)
{
if(a>='A'&&a<='Z')
n++;
if(a>='a'&&a<='z')
k++;
}
out(k,n);
}
void out (int k,int n)
{
printf("大写字母有%d,小写字母有%d",k,n);
}
void main()
{
char str;
scanf("%s",str);
tongji(str);
}
求找错 每次用strlen就出现些错误 求讲解

#include<stdio.h>

#include<string.h>

voidmain()

{

charsen[100];

unsignedinti;

intspace,A,a,num,other;

space=A=a=num=other=0;

printf("输入字符串:\n");

gets(sen);

for(i=0;i<strlen(sen);i++)

{

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

A++;

elseif(sen[i]>'a'&&sen[i]<'z')

a++;

elseif(sen[i]>='0'&&sen[i]<='9')

num++;

elseif(sen[i]=='')

space++;

else

other++;

}

printf("该字符串共有%d个字符\n\n\t大写字母%d个\n\t小写字母%d个\n\t数字%d个\n\t空格%d个\n\t其他字符%d个\n\n",strlen(sen),A,a,num,space,other);

}

扩展资料

C语言统计一个文件字符数

1、getchar函数。getchar函数默认的输入来源是标准输入,即stdin,通常是键盘。但是根据题目的要求,输入就不能是键盘了,而是一个文件。

2、判断文件结尾。不同的操作系统,对待文件的结尾标志是不一样的。unix系统的文件结束标志是ctrl+d,win是ctrl+z。为了屏蔽不同系统的差异,统一用EOF来表示。

3、重定向技术。对于getchar和printf函数,stdin和stdout默认是键盘和显示器,为了从文件输入和输出到文件,需使用重定向技术“<”和“>”,使得stdin和stdout重定向到文件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16

你好

修改后的代码,主要后面注释:

#include <stdio.h>
#include <string.h>
void out (int k,int n);

void tongji (char str[])  // 传递的参数是数组
{
  int i,n=0,k=0,a;
  for(i=0;i<strlen(str);i++)
  {
a=str[i];        // a 要连续赋值
    if(a>='A'&&a<='Z')
n++;
if(a>='a'&&a<='z')
k++;
  }
  out(k,n);
}
void out (int k,int n)
{
  printf("大写字母有%d,小写字母有%d",k,n);
}
int main()
{
  char str[100];         // 这里是数组,不是单个字符
  scanf("%s",str);
  tongji(str);
}

本回答被提问者和网友采纳
第2个回答  2013-11-28
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
void out (int k,int n)
{
printf("大写字母有%d,小写字母有%d",k,n);system("pause");
}

void tongji (char *str)
{
int i,n=0,k=0;
for(i=0;i<=strlen(str);i++)
{
if(str[i]>='A'&&str[i]<='Z'){
n++;
}
if(str[i]>='a'&&str[i]<='z'){
k++;
}
}
out(k,n);
}

int main()
{
char str[1000]={'\0'};
scanf("%s",str);
tongji(str);
}

strlen用法:http://baike.baidu.com/link?url=wKltAOcBjvHcbbQ660iqQY5yGnPzXOBvY0dr0Ee1vBQUN1m1r2rtK5IOmh7--3Sd_-rcZFvZr6RDMAG11Z4_JoAJ1YIaXgzmXqEqLNlYw_fFcA1N0uhnA_dLaEnyrAbH
注意一下函数传参的问题就行
char a;表示定义一个字符
char a[2000];表示定义一个字符串
传参用地址就行
第3个回答  2013-11-28
#include <stdio.h>
#include <string.h>
void tongji (char *str)  //参数是字符指针,另一个概念,好好看书。
{
  int i,n=0,k=0,a;
  void out (int k,int n);
  for(i=0;i<=strlen(str);i++)
  {
    if(str[i]>='A'&& str[i]<='Z')
n++;
if(str[i]>='a'&& str[i]<='z')
k++;
  }
      out(k,n);
}
void out (int k,int n)
{
  printf("大写字母有%d,小写字母有%d",k,n);
}
int main()
{
  char str[100];   //改成字符数组,可以存100个字符
  scanf("%s",str);
  tongji(str);
  return 0;
}

字符串是字符数组,你把概念弄错啦,再看看书。

第4个回答  2022-04-10
#include <stdio.h>

int main()
{
int i;
int count = 0, count1 = 0;
printf("请输入一串英文字符\n");
while((i = getchar()) != '\n')
{
if( i >= 'A' && i <= 'Z')
{
count++;
}
else if( i >= 'a' && i <= 'z')
{
count1++;
}
}
printf("大写字母有%d个\n", count);
printf("大写字母有%d个\n", count1);
return 0;
}
相似回答