利用函数指针统计字符串中各种类型字符的个数

原创 2013年12月05日 15:11:45

/*
功能:对输入的字符串,分别统计字符串内英文字母、空格、数字和其他字符的个数
   
输入:char* pInputString:字符串
   
输出:int * pCharNum:英文字母个数
     int * pBlankNum:空格个数
     int * pDigitNum:数字个数
     int * pOtherNum:其它字符个数
    
返回:void
*/
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>


bool isChar(char* p)
{
 char ch=*p;
 return (isalpha(ch)!=0);
}
bool isDigit(char* p)
{
    char ch=*p;
 return (isdigit(ch)!=0);
}
bool isBlank(char* p)
{
 char ch=*p;
 return ch==' ';
}

bool isOther(char* p)
{
return true;
}
bool (*func[4])(char* pInputString)={isChar,isBlank,isDigit,isOther};

void StatString(char* pInputString, int* pCharNum, int* pBlankNum, int* pDigitNum, int* pOtherNum)
{
 /*在这里实现功能*/
    if(pInputString==NULL||pCharNum==NULL||pBlankNum==NULL||pDigitNum==NULL||pOtherNum==NULL) return;
 
 int* a[]={pCharNum,pBlankNum,pDigitNum,pOtherNum};
 int b[4]={0};
 char* pc=pInputString;
 while(*pc!='\0')
 {
  for(int i=0;i<4;i++)
  {
  
   if(func[i](pc))
   {
    *(a[i])++;
    b[i]++;
    break;
   }
  }
  pc++;
 }
 /*for(int i=0;i<4;i++)
  *(a[i])=b[i];*/

 *pCharNum=b[0];
 *pBlankNum=b[1];
 *pDigitNum=b[2];
 *pOtherNum=b[3];
 
 return;

相关文章推荐

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

import java.util.*; /** * * @author 码农小江 * tongji.java * 2012-8-2上午12:16:32 */ public c...

数组与字符串、字符指针与其他类型指针、赋值参数、指针参数以及引用参数、函数指针

原文地址:http://www.cppblog.com/xingjiegaojue/archive/2009/08/12/93099.aspx 数组与字符串、字符指针与其他类型指针、赋值参数、指针参...

利用typedef定义函数指针类型

首先来看一段关于函数指针的代码:

C语言回顾(六、基类型,数组指针,字符串指针,函数指针,文字常量区)——iOS开发基础

整理C语言知识点 基类型,指针运算,指针变量,数组指针,字符串指针,函数指针,文字常量区...

笔试题-输入一个字符数组将这些字符串按顺序合并输出-指针数组-数组指针-函数指针-指针函数

#include #include #include void linkString(int count, char *chptr[]); /** 考察点就一个 指针数组 指针数组的意思是:...
  • JQ_AK47
  • JQ_AK47
  • 2016年11月14日 21:59
  • 355

不定个数的c++函数指针

关于多线程下利用vector保存函数指针并调用的方法,这是一个最简单的函数指针调用实例,大家可以看到这样对于处理一些第一时间处理数据的业务非常合适,这样处理的实时性非常好,当然而且可以多个处理函数来处...
  • xueyunf
  • xueyunf
  • 2012年11月15日 10:49
  • 1006

程序猿之---C语言细节1(==与=、函数指针、数组字符串printf、int ((b));、char b =‘abcd’)

#include int main(int argc, char *argv[]) { char c; int ((b)) = 1; // 在求值时((b))是整型,则b也是整型,如函数i...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用函数指针统计字符串中各种类型字符的个数
举报原因:
原因补充:

(最多只允许输入30个字)