###C语言程序设计-----C语言学习(4)#

 

前言:感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容。现在开始今天的内容:

 

 

一.  主干知识的学习

1.字符型数据

(1)字符型常量

  字符型常量指单个字符,用一对单引号及其所括起来的字符表示。例如:‘A’,‘a’,‘9’,‘¥’是字符型常量,它们分别表示字母A,a,数字字符9和符号¥。 

ASCII字符集中列出了所以可以使用的字符,共256个,它具有以下特性:

a.每个字符都有唯一的次序值,即ASCII码。

b.数字字符‘0’,‘1’,‘2’,······,‘9’的ASCII码按升序连续排列。

c.大写字母‘A','B',······,’Z‘的ASCII码按升序连续排列。

d.小写字母‘a’,‘b',······,’z‘的ASCII码按升序连续排列。

注意:要区分数字和数字字符,例如,1为整型数字,而'1'为字符。

(2)字符型变量

字符型变量在定义时用类型名char,例如:

        char op;

定义了一个字符型变量op,它的值是字符型数据。op='+'将字符型常量'+'赋给字符型变量op。

 

2.字符型数据的输入与输出

(1)调用函数scanf()和printf()输入输出字符,此时,在函数调用的格式控制字符串中相应的格式控制说明为%c。

(2)字符输入函数getchar()

设ch是字符型变量,函数getchar()的一般使用格式为:

            ch=getchar();

其功能是从键盘输入一个字符,并赋值给变量ch。

(3)字符输出函数putchar()

函数putchar()的一般调用格式:

            putchar(输出参数);

其功能是输出参数是字符型变量或字符型常量。

注意:函数getchar()和putchar()只能处理单个字符的输入与输出,即调用一次函数,只能输入和输出一个字符。

 

3.逻辑运算

在C语言中提供了三种逻辑运算符,如下表所示:

逻辑运算符
目数单目双目双目
运算符&&||
名称逻辑非逻辑与逻辑或

解释说明:设a和b表示逻辑运算对象,逻辑运算符的功能描述如下

(1)!a:如果a为‘真’,结果为‘假’;如果a为‘假’,结果为‘真’。

(2)a&&b:当a和b都为‘真’时,其结果是‘真’;否则,结果是‘假’。

(3)a||b:当a和b都为‘假’时,结果为‘假’;否则,结果是‘真’。

举例:(写出C语言表达式)

(1)ch是空格或回车。

            (ch==' ')||(ch=='\n') 

(2)year是闰年,即year能被4整除但不能被100整除,或year能被400整除。

            (year%4==0&&year%100!=0)||(year%400==0)

 

二.  具体程序实战应用

 

问题:统计英文字母和数字字符。输入一个正整数n,再输入n个字符,统计其中英文字母,数字字符和其他字符的个数。 

#include <stdio.h>
int main()
{int digit, i, letter, n, other; //定义三个变量存放统计结果 char ch;   //定义一个字符变量 digit=letter=other=0;printf("Enter n:");  //提示将输入几个字符 scanf("%d", &n);getchar();  //读入并舍弃换行符 printf("Enter %d characters:", n);for (i=1; i<=n; i++)  //循环执行n次 {ch=getchar();  //输入字符并赋值给变量ch if ((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){letter++;  //若为英文字母则加一 }else if (ch>='0'&&ch<='9'){digit++;  //若为数字则加一 }else {other++;  //非字母与数字则加一 }}printf("letter=%d, digit=%d, other=%d\n", letter, digit, other);return 0;} 

注意:

(1)程序运行时,先输入10<换行>,然后再输入10个需要分类统计的字符。此时,第11行的getchar()读入了换行符,由于没有赋值给变量,读入的换行符相当于被舍弃了。如果此处没有调用getchar(),则换行符会将作为10个需要统计的字符的第一个输入字符参加统计。 

(2)输入n个字符时,必须连续输入,字符之间不能有间隔。

感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容。

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/651583.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode541反转字符串Ⅱ(java实现)

我们今天分享的题目是字符串反转的进阶版反转字符串Ⅱ。 我们首先来看题目描述&#xff1a; 乍一看题目&#xff0c;有种懵逼的感觉&#xff0c;不要慌&#xff0c;博主来带着你分析题目&#xff0c;题目要求&#xff1a; 1. 每隔2k个字符&#xff0c;就对2k字符中的前k个字符…

C++设计模式介绍:优雅编程的艺术

物以类聚 人以群分 文章目录 简介为什么有设计模式&#xff1f; 设计模式七大原则单一职责原则&#xff08;Single Responsibility Principle - SRP&#xff09;开放封闭原则&#xff08;Open/Closed Principle - OCP&#xff09;里氏替换原则&#xff08;Liskov Substitution …

MongoDB:从容器使用到 Mongosh、Python/Node.js 数据操作

文章目录 1. 容器与应用之间的关系介绍2. 使用 Docker 容器安装 MongoDB3. Mongosh 操作3.1 Mongosh 连接到 MongoDB3.2 基础操作与 CRUD 4. Python 操作 MongoDB5. Nodejs 操作 MongoDB参考文献 1. 容器与应用之间的关系介绍 MongoDB 的安装有时候并不是那么容易的&#xff0…

《HelloGitHub》第 94 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 …

Redis6基础知识梳理~

初识NOSQL&#xff1a; NOSQL是为了解决性能问题而产生的技术&#xff0c;在最初&#xff0c;我们都是使用单体服务器架构&#xff0c;如下所示&#xff1a; 随着用户访问量大幅度提升&#xff0c;同时产生了大量的用户数据&#xff0c;单体服务器架构面对着巨大的压力 NOSQL解…

openssl3.2 - 测试程序的学习 - test\acvp_test.c

文章目录 openssl3.2 - 测试程序的学习 - test\acvp_test.c概述笔记要单步学习的测试函数备注END openssl3.2 - 测试程序的学习 - test\acvp_test.c 概述 openssl3.2 - 测试程序的学习 将test*.c 收集起来后, 就不准备看makefile和make test的日志参考了. 按照收集的.c, 按照…

换个思维方式快速上手UML和 plantUML——类图

和大多数朋友一样&#xff0c;Jeffrey 在一开始的时候也十分的厌烦软件工程的一系列东西&#xff0c;对工程化工具十分厌恶&#xff0c;觉得它繁琐&#xff0c;需要记忆很多没有意思的东西。 但是之所以&#xff0c;肯定有是因为。对工程化工具的不理解和不认可主要是基于两个逻…

【c++】类对象模型

1.如何计算类对象的大小 class A { public:void PrintA(){cout<<_a<<endl;} private:char _a; }; 问题&#xff1a;类中既可以有成员变量&#xff0c;又可以有成员函数&#xff0c;那么一个类的对象中包含了什么&#xff1f;如何计算一个类的大小&#xff1f; 2…

C++算法之枚举、模拟与排序

1.AcWing 1210.连号区间数 分析思路 由题意是在 1∼N 的某个排列中有多少个连号区间&#xff0c;所以每个数出现并且不重复&#xff01; 如果是连续的&#xff0c;那么Max-Minj-i&#xff08;[i,j]&#xff09; 代码实现 #include<iostream> #include<algorithm>…

关于AOP的@Around特殊处理RequestBody的使用小结

目录 1. 概述 1.1 背景 1.2 源码 2. 测试 2.1 Controller 2.2 SpecialName配置 2.3 RequestConverter 2.4 测试 最近项目上遇到一个这样的需求&#xff1a;用户请求的时候传过来A&#xff0c;在api处理过程中要把A当成B去处理&#xff0c;但是返回的标识中又必须是A作为…

freeswitch智能外呼系统搭建流程

1.获取实时音频数据 media_bug &#xff08;好多mrcp方式也崩溃所以用以下方式&#xff09; 可以参考 方式可以通过socket或者webscoket freeswitch[1.05]用websocket发送mediabug语音流到ASRProxy实现实时质检和坐席辅助 - 知乎 2.webscoket 好多c的库放模块容易崩溃 可以…

2. MySQL 多实例

重点&#xff1a; MySQL 的 三种安装方式&#xff1a;包安装&#xff0c;二进制安装&#xff0c;源码编译安装。 MySQL 的 基本使用 MySQL 多实例 DDLcreate alter drop DML insert update delete DQL select 2.5&#xff09;通用 二进制格式安装 MySQL 2.5.1&#xff…

Linux ---- Shell编程之函数与数组

目录 一、函数 1、函数的基本格式 2、查看函数列表 3、删除函数 4、函数的传参数 5、函数返回值 实验&#xff1a; 1.判断输入的ip地址正确与否 2. 判断是否为管理员用户登录 6、函数变量的作用范围 7、函数递归&#xff08;重要、难点&#xff09; 实验&#xff1…

《Q年文峰》GPT应用的交互式非线性体验

Phoncent博客创始人庄泽峰把自己的小说《Q年文峰》做成GPT应用&#xff0c;显然这是一件值得探索且具有创新意义的事情。 因为传统的阅读体验是线性的&#xff0c;读者只能按照固定的情节顺序进行阅读&#xff0c;而把小说制作成GPT应用后&#xff0c;读者阅读小说的方式是非线…

分布式id-雪花算法

一、雪花算法介绍 Snowflake&#xff0c;雪花算法是有Twitter开源的分布式ID生成算法&#xff0c;以划分命名空间的方式将64bit位分割成了多个部分&#xff0c;每个部分都有具体的不同含义&#xff0c;在Java中64Bit位的整数是Long类型&#xff0c;所以在Java中Snowflake算法生…

203.移除链表元素(力扣LeetCode)

文章目录 203.移除链表元素题目描述原链表删除元素虚拟头节点 203.移除链表元素 题目描述 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head …

Ubuntu20.04添加桌面启动、侧边栏启动和终端启动

桌面启动 新建XX.desktop文件 在桌面新建一个XX.desktop文件&#xff0c;以QtCreator为例。 &#xff08;注意这里不能使用sudo&#xff0c;因为这样会把文件的权限归为root&#xff0c;导致后续设置可执行程序不方便&#xff09; gedit qtcreator.desktop在XX.desktop文件中…

【DeepLearning-9】YOLOv5模型网络结构中加入MobileViT模块

一、神经网络的前中后期 在神经网络中&#xff0c;特别是在深度卷积神经网络&#xff08;CNN&#xff09;中&#xff0c;“网络早期&#xff08;低层&#xff09;”、“网络中期&#xff08;中层&#xff09;”和“网络后期&#xff08;高层&#xff09;”通常指的是网络结构中…

【云原生】初识Docker,安装以及了解操作命令

一、为什么要使用容器&#xff1f; 背景&#xff1a;以前开发、测试、生产为不同的环境&#xff0c;痛点是发现开发测试以后没问题&#xff0c;但是在生产环境无法运行。给测试、开发、运维人员造成了大量的工作。最终结果是发版更新速度也跟不上&#xff0c;效率低 我认为使…

翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式二

GPT-4 Vision 系列: 翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式一 GPT-4 Vision 的 7 个实际用例 Pre-requisites:先决条件&#xff1a; 订阅 ChatGPT Plus 以访问 GPT-4 Vision。如果您不熟悉 Streamlit&#xff0c;请按照安装步骤操作。 1. 绘制您的应…