当前位置: 首页 > news >正文

计算机408考研先导课---C语言难点2

目录

一、字符型数据与字符串型数据的比较

1、字符型数据特点

2、字符串型数据特点

二、字符数组

1、定义      

2、输入输出

①输入

②输出

3、字符处理函数

①put函数

②gets函数

③strcat函数

④strcpy函数

⑤strcmp函数

⑥strlen函数

⑦strlwr函数

⑧strupr函数


一、字符型数据与字符串型数据的比较

我们先来依次看看二者的特点:

1、字符型数据特点

①用单引号包含

②仅能包含一个字符

③以“\”开头的字符,称为转义字符,例如:

\n\t\r\\
换行横向跳格回车反斜杠

④字符型数据与整型数据之间可以相互转换、相互通用,例如

#include<stdio.h>int main(){char c='a';char c1= c-32;printf("%c",c1);return 0;
} 

        上述代码输出的结果为A,因为C语言的字符使用的就是ASCII字符集,总共有128个,每个相应的ASCII码都能对应唯一的表示一个字符:
        其中,数字’0’、‘1’、‘2’、…、‘9’、大写字母’A’、‘B’、‘C’、…、‘Z’、小写字母‘a’、‘b’、‘c’、…都是按升序排列的。也就是说'A'+1=‘B’。
        注意: 数字和数字字符不一样的,带单引号的是字符,例如:1是整型数字,而’1’是字符,其ASCII码是49,即按整型输出的话就是49,按字符型数据输出就是1。如下述代码所示:

#include<stdio.h>int main(){char c='1';int c1=c;printf("c=%c,c1=%d",c,c1);return 0;
} 

 结果为:

2、字符串型数据特点

①用双引号括起来 char c=“a”;则c是一个字符串常量而不是字符常量。

②不能将字符串数据赋予给字符型数据

③存储方式:在C语言中,以字符“\0”作为字符串结束的标志

例如HELLO的存储占6个字符,即H E L L O \0,但是\0在输出时不显示

二、字符数组

1、定义      

 我们一次性将字符变量讲透,字符数组是由字符型数据组成的数组,赋值时,要用''把单个字符括起来,如

char c[5]={'W','Q','L','T','Z'};

注意:若初值个数小于数组长度,则只将这些字符赋值给数组中前面的元素,其余用空字符填充(空字符即\0)

同理,由于它仍然是字符,依然可以输入不带引号的数字,对照ASCII码,翻译出真实的信息,如下述代码所示:

#include<stdio.h>int main(){
char std1[11]={76,84,90,\0,76,111,118,101,\0,87,81 };
printf("%s",std1);return 0;
} 

请大家用ASCII对照表“翻译”一下,小编想表示的真实信息。

2、输入输出

①输入

有两种方式:

A、逐个输出

B、一次性用%s格式符输出

printf("%s",c);//正确输出
printf("%s",c[0]);//错误输出,应该改为printf("%c",c[0]);

使用一次性输出,将会输出到‘\0’结束,例如执行下述代码:

#include<stdio.h>int main(){char c[10]="Hello\0WHU";printf("%s",c);return 0;
} 

最终输出的结果仅仅为Hello。

②输出

同理,我们也可以scanf(“%s”,c);进行值的输入

例如执行下述代码:

char std1[5];
char std2[5];
scanf("%s%s",std1,std2);

 如果输入 So What,那么std1会变成S o \0 \0 \0,std2会变成 W h a t \0。

        若此时有一个char std3[8];特别能吃,它想把So What 全部吃掉,全部装入自己的胃里,则我们需要输入 So\0What。



3、字符处理函数

①put函数

作用:输出,可以用printf替代

形式:puts(字符数组)

#include<stdio.h>
#include<string.h>int main(){
char std1[11]={76,84,90,' ',76,111,118,101,' ',87,81 };
puts(std1);return 0;
} 

②gets函数

作用:输入

形式:gets(字符数组)

#include<stdio.h>
#include<string.h>int main(){
char std2[11];
gets(std2);	
return 0;
} 

③strcat函数

作用:连接两个字符数组中的字符串,字符数组2接到字符数组1后,返回字符数组1的地址

形式:strcat(字符数组1,字符数组2)

#include<stdio.h>
#include<string.h>int main(){
char std1[]={"I will protect"}; char std2[]={" WQ "};
char std3[]={"all my life"};strcat(std1,std2);
strcat(std1,std3);	printf("%s",std1);return 0;
} 

所以每次连接都是连接到std1的后边,是std1被修改了,最终输出的结果为:

 

④strcpy函数

作用:将字符串2复制到字符数字1里去,其中字符数组1的长度必须大于等于字符数组2

形式:strcpy(字符数组1,字符串2)

特殊形式:strcpy(字符数组1,字符串2,n)//其中n代表一个整数,意味着将字符串2前面的n个字符复制到字符数组1中去。

注意:不能用赋值语句将一个常量或者字符数组赋值给另一个字符数组

#include<stdio.h>
#include<string.h>int main(){
char std1[]={"LTZ felt lonely"}; 
strcpy(std1,"WQ appears in LTZ’s life"); 
printf("%s",std1);	return 0;
} 

这就好比,LTZ之前很孤独,但是WQ的出现让LTZ内心的孤独一扫而空

⑤strcmp函数

作用:比较两个字符串,若出现不同字符,则通过第一个不同字符的ASCII码的大小判断谁打谁小

形式:strcmp(字符串1,字符串2)

如果二者相等,则函数值为零

如果字符串1大于字符串2,则函数值为正数

如果字符串1小于字符串2,则函数值为负数

例如:

#include<stdio.h>
#include<string.h>int main(){
char std1[]={"True Love "}; 
char std2[]={"Money"};if(strcmp(std1,std2)>0)
printf("真爱更珍贵");
else if(strcmp(std1,std2)<0)
printf("金钱更珍贵");return 0;
} 

很明显,True love比Money更加珍贵,真诚才是永远的必杀技

⑥strlen函数

作用:测试字符串长度,不包括\0

形式:strlen(字符数组)

比如说下述代码

#include<stdio.h>
#include<string.h>int main(){
char std1[]={"WQ&LTZ"}; 
int a=strlen(std1); 
printf("%d",a);	return 0;
} 

没错 WQ&LTZ很6,特别6,非常6(疯狂点头)

⑦strlwr函数

作用:字符串中的大写字母转换为小写字母

形式:strlwr(字符串)

⑧strupr函数

作用:字符串中的小写字母转换为大写字母

形式:strupr(字符串)

        好的,本期的C语言重难点就到这里为止啦,走过路过不要错过,麻烦各位读者点一颗小心心再走吧。(鞠躬)

相关文章:

计算机408考研先导课---C语言难点2

目录 一、字符型数据与字符串型数据的比较 1、字符型数据特点 2、字符串型数据特点 二、字符数组 1、定义 2、输入输出 ①输入 ②输出 3、字符处理函数 ①put函数 ②gets函数 ③strcat函数 ④strcpy函数 ⑤strcmp函数 ⑥strlen函数 ⑦strlwr函数 ⑧strup…...

682. 棒球比赛

题目&#xff1a;你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成&#xff0c;过去几回合的得分可能会影响以后几回合的得分。 比赛开始时&#xff0c;记录是空白的。你会得到一个记录操作的字符串列表 ops&#xff0c;其中 ops[i] 是你需要记录的第 i 项操…...

【《C Primer Plus》读书笔记】第13章:文件输入/输出

【《C Primer Plus》读书笔记】第13章&#xff1a;文件输入/输出13.1 与文件进行通信13.1.1 文件是什么13.1.2 文本模式和二进制模式13.1.3 I/O的级别13.1.4 标准文件13.2 标准I/O13.3 一个简单的文件压缩程序13.4 文件I/O&#xff1a;fprintf()、fscanf()、fgets()和fputs()13…...

Datacom-HCIE考试经验分享

我是誉天Datacom秦同学。作为誉天众多通过Datacom-HCIE考试的学员之一&#xff0c;我感到很荣幸。 首先说说自学的感受吧&#xff1a; 我是从2020年开始接触网络行业的&#xff0c;听单位的前辈说华为的HCIE认证是行业含金量最高的证书&#xff0c;从那时起心里就种下了一个“I…...

第十二章 系统错误消息 - 一般系统错误消息 P - S

文章目录第十二章 系统错误消息 - 一般系统错误消息 P - S第十二章 系统错误消息 - 一般系统错误消息 P - S 错误代码描述<PARAMETER>由用户编写的函数引用或 Do 命令传递给标记行的参数数量超过了为标记行声明的形式参数的数量。<PRIVATE METHOD>已尝试调用一个私…...

【git】Idea中git的使用

配置git 创建git仓库 不同颜色代表的含义 红色——未加入版本控制&#xff1b;绿色——已经加入控制暂未提交&#xff1b;蓝色——加入&#xff0c;已提交&#xff0c;有改动&#xff1b;白色——加入&#xff0c;已提交&#xff0c;无改动&#xff1b;灰色——版本控制已忽略文…...

Centos安装Python、PyCharm

安装Python 1、打开终端(Terminal) 2、输入以下命令更新系统&#xff1a; sudo yum update 3、安装Python&#xff1a; sudo yum install python3 4、安装完成后&#xff0c;可以使用以下命令检查Python版本&#xff1a; python3 --version 安装PyCharm 1、下载PyCharm的安…...

搞百亿补贴,京东不能只“砸钱”

出品 | 何玺 排版 | 叶媛 京东“百亿补贴”真的要来了。 据多家媒体报道&#xff0c;京东“百亿补贴”已于2月23日启动内测。根据此前消息&#xff0c;京东“百亿补贴”频道将于3日晚8点正式上线。 在京东“百亿补贴”频道正式上线之前&#xff0c;我们来聊一聊“刘强东为什…...

automl介绍以及代码实例

使用AutoML来自动构建机器学习模型&#xff0c;可以使用多种不同的Python包&#xff0c;包括AutoGluon、TPOT、Auto-Keras等。AutoGluon可以自动搜索最佳模型&#xff0c;以便满足开发人员的需求&#xff1b;TPOT可以自动调整模型的参数&#xff0c;以获得更好的性能&#xff1…...

kill 与killall

【查询命令所属软件包】 rpm -qf /usr/bin/killall psmisc-22.20-15.el7.x86_64 rpm -qf /usr/bin/kill util-linux-2.23.2-65.el7_9.1.x86_64 【命令参数】 killallkill -e,--exact require exact match for very long names -I,--ignore-case case insensi…...

【加密】开发常见加密类型

相关加密方法具体使用&#xff0c;查阅工具官方&#xff1b; 对称加密&#xff08;单密钥加密&#xff09;&#xff1a;常用于传输数据加密 信息的加密和解密使用相同密钥&#xff1b; 常见对称算法&#xff1a; DES&#xff08;Data Encryption Standard&#xff09;&#x…...

数据结构之基:从根儿上了解数据结构的特性

学好数据结构&#xff0c;就等于成功了一半。 程序是对现实的模拟&#xff0c;现实是由时间和空间组成的&#xff0c;高效的人都是用最少的时间、最少的空间来做最伟大的事&#xff0c;程序亦是如此。我们要选择最合理的算法和最合理的数据结构&#xff0c;来写最好的代码&…...

C++ 枚举详解

C 枚举详解 C 枚举类型详解 枚举类型的定义格式为&#xff1a; enum <类型名> {<枚举常量表>};关键字enum——指明其后的标识符是一个枚举类型的名字枚举常量表——由枚举常量构成。“枚举常量"或称"枚举成员”&#xff0c;是以标识符形式表示的整型量&…...

【vue3】ref , reactive ,toRef ,toRefs 使用和理解

这篇文章是基于理解写的&#xff0c;仅助于理解&#xff0c;如有任何错误之处&#xff0c;感谢指正&#xff01; 文章目录一.ref的使用1. ref的功能主要有两个&#xff1a;2.使用ref注意事项二.reactive的使用三.使用ref 和 reactive 实现双向数据绑定四.toRef 和 toRefs 的使用…...

fastadmin:如何点击按钮弹出存在的指定页面的弹窗

样式&#xff1a;方法一&#xff1a;直接使用超链接进行操作{:url(popup/purchase/itemno)}&#xff1a;表示地址信息btn-dialog&#xff1a;表示弹窗<a href"{:url(popup/purchase/itemno)}" title"跳转第三方" class"btn btn-success btn-dialog…...

【storybook】你需要一款能在独立环境下开发组件并生成可视化控件文档的框架吗?(三)

storybook插件addons核心插件插件APIargTypes写文档组件注释法MDX生成在线可视化UI文档上一篇&#xff1a; https://blog.csdn.net/tuzi007a/article/details/129194267插件addons 插件用于增强storybook的UI功能。 核心插件 storybook/addon-essentials 它几乎控制了整个s…...

Android源码分析 —— Activity栈管理(基于Android8)

0. 写在前面 本文基于 Android8.0源码&#xff0c;和Android9.0大同小异&#xff0c;但和Android10.0差别非常大&#xff01;新版改用ATM来管理Activity的启动&#xff0c;Activity的生命周期也通过XXXItem来管理。由于我分析的Activity启动流程就是基于Android8/9的&#xff…...

Python实现贝叶斯优化器(Bayes_opt)优化支持向量机分类模型(SVC算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。1.项目背景贝叶斯优化器(BayesianOptimization) 是一种黑盒子优化器&#xff0c;用来寻找最优参数。贝叶斯优化器是基…...

【华为OD机试模拟题】用 C++ 实现 - 分积木(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...

FFmpeg/OpenCV 实现全屏斜体水印

实现思路 &#x1f914;​ 基于ffmpeg&#xff0c;画布的方式&#xff0c;创建画布 -> 水印 -> 旋转 -> 抠图 -> 叠加到图像上基于ffmpeg&#xff0c;旋转图片的方式&#xff0c;填充 -> 水印 -> 顺时针旋转 -> 逆时针旋转 -> 截图基于opencv&#xff…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...