c语言 对任意输入的字符串,统计其中的大写字母和小写字母的个数
//例如, 输入字符串: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重定向到文件。
你好
修改后的代码,主要后面注释:
#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);
}
#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];表示定义一个字符串
传参用地址就行
#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;
}
字符串是字符数组,你把概念弄错啦,再看看书。
2022-04-10
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;
}