c语言 用指针方法处理:输入一行字符,统计并输出其中大写字母、小写字母、空格、数字及其它字符的个数。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 用指针方法处理:输入一行字符,统计并输出其中大写字母、小写字母、空格、数字及其它字符的个数。相关的知识,希望对你有一定的参考价值。
求正确答案
#incude<stdio.h>void main() char str[256],*p; int a,b,c,d,e;
gets(str); a=b=c=d=e=0; p=str;
while ( *p )
if ( *p==' ' ) a++;
else if ( *p>='a' && *p<='z' ) b++;
else if ( *p>='A' && *p<='Z' ) c++;
else if ( *p>='0' && *p<='9' ) d++;
else e++;
printf("大写字母%d,小写字母%d,空格%d,数字%d,其他%d\\n",c,b,a,d,e);
参考技术A #include <stdio.h>
int main()
char str[256];
char *p;
int upper = 0;
int lower = 0;
int space = 0;
int digit = 0;
int other = 0;
p = str;
gets(p);
while(*p)
if(*p>='A' && *p<='Z')
upper++;
else if(*p>='a' && *p<='z')
lower++;
else if(*p == ' ')
space++;
else if(*p>='0' && *p<='9')
digit++;
else
other++;
p++;
printf("upper = %d\n",upper);
printf("lower = %d\n",lower);
printf("space = %d\n",space);
printf("digit = %d\n",digit);
printf("other = %d\n",other);
return 0;
参考技术B char c[80],m;
gets(c);
int *p;
int num=0,i;
p=#
for(i=0;(m=c[i])!=0;i++)
if(c[i]>='A'&&c[i]<='Z')
num++;
这个只能统计出 大写字母个数 楼主 看着在IF下边加两行就行了
参考技术C #include <stdio.h>
int main()
char a[80]; //存放字符
char str;
int i;
int b[5]=0; //存放统计的个数
gets(a);
for(i=0;(str=a[i])!='\0';i++)
if(str>='a'&&str<='z') //统计小写字母个数
b[0]++;
else if(str>='A'&&str<='Z')//统计大写字母个数
b[1]++;
else if(str>='0'&&str<='9') //统计数字个数
b[2]++;
else if(str==' ') //统计其他字符个数
b[3]++;
printf("小写字母:%d\n",b[0]);
printf("大写字母:%d\n",b[1]);
printf("数字:%d\n",b[2]);
printf("其他字符:%d\n",b[3]);
return 0;
输入一个字符串,只取其中的英文字母,全部转换成小写后输出。这个用C语言怎么编写?
楼上说的不错到百度去科普了一下发现了一个小问题原型:extern char *strlwr(char *s);
用法:#include <string.h>
功能:将字符串s转换为小写形式
说明:只转换s中出现的大写字母,不改变其它字符。返回指向s的指针。
注意事项:在Linux的编译器中,有可能会编译不通过。
替代函数:
#include<ctype.h>
inline char* strlwr( char* str )
char* orig = str;
// process the string
for ( ; *str != '\0 '; str++ )
*str = tolower(*str);
return orig;
参考技术A #include<stdio.h>
int main(void)
char a;
while((a=getchar())!='\n')
if(a>='a'&&a<='z')
printf("%c",a);
else if(a>='A'&&a<='Z')
printf("%c",a+32);
参考技术B #include<stdio.h>
#include<string.h>
int main()
char s[200];
gets(s);//scanf("%s",s);
strlwr(s);
char *p = s;
while(*p)
if(('a' > *p) || ('z' < *p))
int i = 0;
do
p[i] = p[i + 1];
while('\0' != p[i++]);
else
++p;
printf(s);
return 0;
本回答被提问者采纳
以上是关于c语言 用指针方法处理:输入一行字符,统计并输出其中大写字母、小写字母、空格、数字及其它字符的个数。的主要内容,如果未能解决你的问题,请参考以下文章
C语言:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
ZZNUOJ_用C语言编写程序实现1177:字符串排序(指针专题)(附完整源码)