
C语言中计算字符个数
·
在日常敲代码学习中,我们经常碰到求一串字符中所包含字符的题目,小编也总结了几种求字符个数的方法。
一、求各类字符的数量
思路其实比较简单,就是用c语句分类统计各类字符数量
123cyua zmcaja acaasa}}}[
#include <stdio.h>
int main()
{
char c; \\定义字符串
int letters=0,space=0,digit=0,other=0; \\定义字符初始量数量
while ((c=getchar())!=EOF) \\运用循环语句读到文件结尾截止
{
if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= 'Z') \\计算大写字母和小写字符数量
letters++;
else if (c == ' ') \\计算空格数量
space++;
else if (c >= '0'&&c <= '9') \\计算数字数量
digit++;
else
other++; \\其他字符数量
}
printf("%d %d %d %d",letters,space,digit,other);
return 0;
}
二、统计单词个数
当c程序中读取一段字符时,计算机并不会像人的大脑一样读取单词计算数量,那将如何让计算机成功统计出单词数量呢?
因为每个单词的长短不一,字母不一致,计算机是很难判断出输入的字符串是不是单词的,但是,计算机虽然不认识单词,但是可以读取出空格啊。因此,我们可以让计算机读取字符串中的空格,
thank you very much
我们不难看出,单词数=空格数+1 ,因此,可编写c程序
#include <stdio.h>
int main() {
char a[100];
int i, in_word, word_num;
gets(a);
word_num = 0; // 初始化单词个数为0
in_word = 0; // 标记位,标记是否在单词内
for (i = 0; a[i]; i++) {
if (a[i] == ' ') { // 检测到空格
in_word = 0; // 设置标记位为不在单词内
} else if (in_word == 0) { // 在单词内
word_num++; // 统计单词个数
in_word = 1; // 设置标记位为在单词内
}
}
printf("%d", word_num);
return 0;
}
总结:C语言是一种有规律的的语言,运用适当的方法编写程序会让程序更简单,效率更高,如果大家有什么更好的方法,欢迎大家评论指点!
推荐内容
更多推荐
所有评论(1)
您需要登录才能发言
相关推荐
查看更多
ai-hedge-fund

AI 对冲基金原理验证项目,多智能体协作模拟交易决策,用于教育目的
fastapi_mcp

一种零配置工具,用于自动将 FastAPI 端点公开为模型上下文协议 (MCP) 工具。
fumadocs

用于在 Next.js 中构建文档网站的框架。
热门开源项目
活动日历
查看更多
直播时间 2025-04-09 14:34:18

樱花限定季|G-Star校园行&华中师范大学专场
直播时间 2025-04-07 14:51:20

樱花限定季|G-Star校园行&华中农业大学专场
直播时间 2025-03-26 14:30:09

开源工业物联实战!
直播时间 2025-03-25 14:30:17

Heygem.ai数字人超4000颗星火燎原!
直播时间 2025-03-13 18:32:35

全栈自研企业级AI平台:Java核心技术×私有化部署实战
Error: bind failed for 0000:00:04.0 - Cannot bind to driver vfio-pci
Error: unbind failed for 0000:00:04.0 - Cannot open /sys/bus/pci/drivers//unbind