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:字符串排序(指针专题)(附完整源码)

c语言求字符串长度

ZZNUOJ_用C语言编写程序实现1160:字符串长度(指针专题)(附完整源码)

c语言编程求助

输入一个字符串,只取其中的英文字母,全部转换成小写后输出。这个用C语言怎么编写?