1.引用<ctype.h>库函数:
拿牛客上面的题目举例:
https://ac.nowcoder.com/acm/problem/22202
输入一串字符,以“?”结束。统计其中字母个数,数字个数,其它符号个数。
#include <stdio.h> // 标准输入输出函数,例如 printf 和 scanf
#include <stdlib.h> // 常用的实用程序函数,例如内存分配和随机数生成
#include <string.h> // 字符串处理函数,例如字符串拷贝和字符串比较
#include <math.h> // 数学函数,例如三角函数和指数函数
#include <time.h> // 时间和日期操作函数
#include <stdbool.h> // 布尔类型支持
#include <ctype.h> // 字符处理函数,例如字符大小写转换和字符类型判断
#include <limits.h> // 常量定义,包括整数类型的取值范围
#include <assert.h> // 断言库,用于在程序中插入断言条件
int main(){
char std[100];
int i,Letters=0,Digits=0,Others=0,j=0;
for (i = 0; i < 100; i++) {
scanf("%c", &std[i]);
if (std[i] == '?' || i == 99) {
std[i+1] = '\0';
break;
}
}
for (j;std[j] !='?';j++) {
if(isalpha(std[j])){
Letters++;
}
else if (isdigit(std[j])) {
Digits++;
}
else if (isspace(std[j])){
Others++;
continue;
}
else{
Others++;
}
}
printf("Letters=%d\nDigits=%d\nOthers=%d",Letters,Digits,Others);
return 0;
}
对于这道题其实比较简单只要用上ctype.h库中的函数就可以解决问题
ctype.h库函数提供了一些用于字符类型判断和转换的函数,包括以下函数(重点):
- isalnum(c):判断字符c是否为字母或数字。
- isalpha(c):判断字符c是否为字母。
- isdigit(c):判断字符c是否为数字。
- isspace(c):判断字符c是否为空格符、制表符、换行符等空白字符。
- isupper(c):判断字符c是否为大写字母。
- islower(c):判断字符c是否为小写字母。
- tolower(c):将字符c转换为小写字母。
- toupper(c):将字符c转换为大写字母。
可以通过#include<ctype.h>语句引用该库函数