发布网友 发布时间:2024-09-27 07:59
共1个回答
热心网友 时间:7分钟前
/*
利用指向函数的指针变量写一个函数int count1(char *p),
统计输入字符串中的小写字母的个数。
在main函数中输入字符串,并输出统计结果。
附加:再编写一个函数int count2(char *p),
统计输入字符串中的数字的个数,在主函数中输入1,
执行count1函数,输入2,执行count2函数。
(同一个指针指向不同的函数)
//
c语言实现 visual studio 2010编译通过
编码:字符集UNICODE
*/
//#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string>
using namespace std;
int count1(char *p);
int count2(char *p);
void fnMenu();
void fnInputString(char *p);
//如果不是在VS平台,请用int main(int argc, char* argv[])
int _tmain(int argc, _TCHAR* argv[])
{
char str[1204];
//
fnMenu();
//
while(1)
{
switch(getchar())
{
case '1':
printf("小字母个数是:%d\n",count1(str));
printf("请输入菜单选项:");
break;
case '2':
printf("数字个数是:%d\n",count2(str));
printf("请输入菜单选项:");
break;
case '3':
system("cls");
fnMenu();
break;
case '9':
fnInputString(str);
break;
case '0':
exit(0);
break;
default:break;
}
}
return 0;
}
int count1(char *p){
int iLowAlpha = 0;
for(int i= 0;p[i] != '\0';i++)
{
if(p[i] >= 'a' &&p[i] <= 'z')
{
iLowAlpha++;
}
}
return iLowAlpha;
}
int count2(char *p){
int iDigital = 0;
for(int i= 0;p[i] != '\0';i++)
{
if(p[i] >= '0' && p[i] <= '9')
iDigital++;
}
return iDigital;
}
void fnInputString(char *p){
printf("请输入字符串:");
scanf("%s",p); //此处不能用scanf_s
printf("请输入菜单选项:");
}
void fnMenu(){
printf(" 统计小写字母个数 \n");
printf(" **********************************************\n");
printf(" ****** 菜单选项 ******\n");
printf(" ****** ******\n");
printf(" ****** 9.输入字符串 ******\n");
printf(" ****** 1.输出小写字母个数 ******\n");
printf(" ****** 2.输出数字个数 ******\n");
printf(" ****** 3.清屏 ******\n");
printf(" ****** 0.退出 ******\n");
printf(" ****** ******\n");
printf(" **********************************************\n");
printf("请输入菜单选项:");
}
合你想法否?希望对你有启发!