c++编程一个自定义函数完成对任意一个字符串中大写字母、空格、数字和其他字符个数的统计,统计结果

分别存入指针变量p1、p2、p3、p4所指向的存储空间。自定义函数类型为void f(
char str[],int *p1,int *p2, int *p3,int *p4)再编写一个主函数,输入一个字符串,调用该函数后,输出所有统计结果。

void f(char* str,int *p1,int *p2, int *p3,int *p4)
{
char* pstr=str;

*p1=*p2=*p3=*p4=0;
while(1)
{
if (!*pstr)
{
break;
}
if(*pstr>='0'&&*pstr<='9')
{
(*p3)++; //数字
}
else if(*pstr>='A'&&*pstr<='Z')
{
(*p1)++;
// pstr++;
}
else if(*pstr==0x20)
{
(*p2)++;
// pstr++;
}else
{
(*p4)++;
// pstr++;
}
pstr++;
}
}

int main(int argc, char* argv[])
{
int p1,p2,p3,p4;
f("adfs344adsfa asdfaa89345234sdfaadfaSDf823412343143 ad34werwe",&p1,&p2,&p3,&p4);
printf("大写字母:%d\n空格:%d\n数字:%d\n其它:%d\n",p1,p2,p3,p4);
return 0;
}追问

是输入任意字符后输出 pstr是啥意思

追答

确实是输入任意字符啊,main里面的只是例子而已,pstr只是为了不让你直接操作str指针,有些情况下在释放指针的时候如果没有把指针回到原位会出错。不用管它

追问

是做好了函数后在dos上输入字符串

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-18
写好了。有什么问题问就好了。
#include <iostream>
#include <cstring>
using namespace std;

void f(char *,int *,int *,int *,int *);

int main(int argc,char * argv[])
{
char * str = "Your string here.Test112233 over.";
int i1,i2,i3,i4;
i1 = i2 = i3 = i4 = 0;

f(str,&i1,&i2,&i3,&i4);

cout<<"统计字符串\""<<str<<"\":\n大写字符:"<<i1<<"个\n空格:"<<i2<<"个\n数字:"<<i3<<"个\n其他字符:"<<i4<<"个"<<endl;
cin.get();
return 0;
}
void f(char str[],int *p1,int *p2, int *p3,int *p4)
{
int i,len;

len = strlen(str);
for(i = 0;i < len;i++)
{
if(isalpha(str[i]) && str[i] == toupper(str[i]))
(*p1)++;
else if(str[i] == ' ')
(*p2)++;
else if(isdigit(str[i]))
(*p3)++;
else
(*p4)++;
}
}
第2个回答  2011-12-18
1从键盘上任意输入一个字符,编程判断该字符是数字字符,大写字符,小写字符2完成2个字符串复制操作的函数设计 c; while((c=getchar())!=EOF)
第3个回答  2011-12-18
#include <iostream>
#include <string.h>

using namespace std;

void f(char str[], int *p1, int *p2, int *p3, int *p4)
{
*p1 = 0;
*p2 = 0;
*p3 = 0;
*p4 = 0;
int len=strlen(str);
for (int i=0; i<len; i++)
{
if (str[i] >= 'A' && str[i] <= 'Z')
{
(*p1)++;
}
else if (' ' == str[i])
{
(*p2)++;
}
else if ('0' <= str[i] && '9' >= str[i])
{
(*p3)++;
}
else
{
(*p4)++;
}
}
}

int main(void)
{
char str[] = "ZhiDao.BaiDu.Com 2011 12 17;";
int *p1 = new int;
int *p2 = new int;
int *p3 = new int;
int *p4 = new int;
f(str, p1, p2, p3, p4);
cout << "Upcase:" << *p1 << ",blank:" << *p2 << ",number:" << *p3 << ",else:" << *p4;
}

c++编程一个自定义函数完成对任意一个字符串中大写字母、空格...
printf("大写字母:%d\\n空格:%d\\n数字:%d\\n其它:%d\\n",p1,p2,p3,p4);return 0;}

编写一个函数,统计一字符串中字母、数字、空格、和其他字符个数
printf("空格:%d;数字:%d;字母:%d;其他:%d。\\n",KongGe,ShuZi,ZiMu,QiTa);} int main(){ char s[100];printf("请输入:");gets(s);TongJi(s);return 0;}

c++编程实现输入一串字符,分别统计数字字符、大、小写字母、其它字符...
while(没到字符串尾){ if(数字字符){数字字符数++;} else if(大写字母){大写字母数++;} else if(小写字母){小写字母数++;} else {其它字符数++;} }

...统计此字符串中的字母,数字,空格和其他字符的个数,在主函数中输出字...
include<iostream>using namespace std;void f(char *s,int *a) { int i; for ( i=0;i<4;i++ ) a[i]=0; while ( *s ) { if ( *s>='a' && *s<='z' ) a[0]++; else if ( *s>='A' && *s<='Z' ) a[0]++; else if ( *s>='0' && *s<=...

c++输入一行字符串,要求分别统计出其中英文大写字母、小写字母、数字...
printf("大写字母有%d个\\n小写字母有%d个\\n空格有%d个\\n数字有%d个\\n其他字符有%d个\\n",ben,men,spa,num,oth);getchar();} ———如果以上出现“%”符号,那是为了防止系统误识我把半角符号写成全角符号了,注意改回来。———亲爱的lz,如果我的回答能够帮你解决问题,或是对你有...

C++:输入一行文字,找出其中大写字母、小写字母、空格、数字以及其它字符...
include<string> using namespace std;define Max 100 void main(){ int numberA_B;\/\/大写字母个数 int numbera_b;\/\/小写字母个数 int number_none;\/\/空格个数 int number_else;\/\/其他个数 int number_num;\/\/数字个数 numberA_B=numbera_b=number_none=number_else=number_num=0;char *...

用c++编写输入一个字符串统计其中数字字母空格和其他字符的程序
cin 得到标准 string 字符串 str;从 index=0 开始到 index=str.size() 依次扫描 str[index];判断 str[index] 的 ASCII 码:65~90 ('A'-'Z') 为大写字母,97~122 ('a'-'z') 位小写字母,32 (' ') 为空格,48~57 ('0'-'9') 为数字,剩下的为其他字符;每个判断条件后跟一个自加1...

...字符,找出其中的大写字母、小写字母、空格、数字以及其他字符的个数...
int main(int argc,char *argv[]){ char s[300];int i,uc,lc,sp,di,ot;printf("Please enter a string...\\n");i=0;while(s[i]=getchar(),s[i]!='\\n' && ++i<300);uc=lc=sp=di=ot=0;for(s[i]='\\0',i=0;s[i];i++)if(s[i]>='A' && s[i]<='Z')uc++;...

c++输入一行字符,分别统计出其中英文字母,空格,数字字符和其它字符的个...
sp++; else other++; } cout<<"英文字母个数="<<el<<endl<<"数 字 个 数 ="<<nu<<endl<<"空 格 字 数 ="<<sp<<endl<<"其他字符个数="<<other<<endl; system("pause"); return 0;} 望采纳!

编写一个函数,统计一字符串中字母、数字、空格、和其他字符个数
include <stdio.h> include "ctype.h"void main(){ int a,b,c,d;char ch;a=b=c=d=0;printf("输入字符串:");while((ch=getchar())!='\\n'){ if(isalpha(ch))a++;else if(isdigit(ch))b++;else if(ch=='')c++;else d++;} printf("字母:%d,数字%d,空格:%d,其他:%d\\n"...

相似回答