计算机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<Z"};
int a=strlen(std1);
printf("%d",a); return 0;
}
没错 WQ<Z很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. 棒球比赛
题目:你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。 比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操…...
【《C Primer Plus》读书笔记】第13章:文件输入/输出
【《C Primer Plus》读书笔记】第13章:文件输入/输出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:fprintf()、fscanf()、fgets()和fputs()13…...
Datacom-HCIE考试经验分享
我是誉天Datacom秦同学。作为誉天众多通过Datacom-HCIE考试的学员之一,我感到很荣幸。 首先说说自学的感受吧: 我是从2020年开始接触网络行业的,听单位的前辈说华为的HCIE认证是行业含金量最高的证书,从那时起心里就种下了一个“I…...
第十二章 系统错误消息 - 一般系统错误消息 P - S
文章目录第十二章 系统错误消息 - 一般系统错误消息 P - S第十二章 系统错误消息 - 一般系统错误消息 P - S 错误代码描述<PARAMETER>由用户编写的函数引用或 Do 命令传递给标记行的参数数量超过了为标记行声明的形式参数的数量。<PRIVATE METHOD>已尝试调用一个私…...
【git】Idea中git的使用
配置git 创建git仓库 不同颜色代表的含义 红色——未加入版本控制;绿色——已经加入控制暂未提交;蓝色——加入,已提交,有改动;白色——加入,已提交,无改动;灰色——版本控制已忽略文…...
Centos安装Python、PyCharm
安装Python 1、打开终端(Terminal) 2、输入以下命令更新系统: sudo yum update 3、安装Python: sudo yum install python3 4、安装完成后,可以使用以下命令检查Python版本: python3 --version 安装PyCharm 1、下载PyCharm的安…...
搞百亿补贴,京东不能只“砸钱”
出品 | 何玺 排版 | 叶媛 京东“百亿补贴”真的要来了。 据多家媒体报道,京东“百亿补贴”已于2月23日启动内测。根据此前消息,京东“百亿补贴”频道将于3日晚8点正式上线。 在京东“百亿补贴”频道正式上线之前,我们来聊一聊“刘强东为什…...
automl介绍以及代码实例
使用AutoML来自动构建机器学习模型,可以使用多种不同的Python包,包括AutoGluon、TPOT、Auto-Keras等。AutoGluon可以自动搜索最佳模型,以便满足开发人员的需求;TPOT可以自动调整模型的参数,以获得更好的性能࿱…...
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…...
【加密】开发常见加密类型
相关加密方法具体使用,查阅工具官方; 对称加密(单密钥加密):常用于传输数据加密 信息的加密和解密使用相同密钥; 常见对称算法: DES(Data Encryption Standard)&#x…...
数据结构之基:从根儿上了解数据结构的特性
学好数据结构,就等于成功了一半。 程序是对现实的模拟,现实是由时间和空间组成的,高效的人都是用最少的时间、最少的空间来做最伟大的事,程序亦是如此。我们要选择最合理的算法和最合理的数据结构,来写最好的代码&…...
C++ 枚举详解
C 枚举详解 C 枚举类型详解 枚举类型的定义格式为: enum <类型名> {<枚举常量表>};关键字enum——指明其后的标识符是一个枚举类型的名字枚举常量表——由枚举常量构成。“枚举常量"或称"枚举成员”,是以标识符形式表示的整型量&…...
【vue3】ref , reactive ,toRef ,toRefs 使用和理解
这篇文章是基于理解写的,仅助于理解,如有任何错误之处,感谢指正! 文章目录一.ref的使用1. ref的功能主要有两个:2.使用ref注意事项二.reactive的使用三.使用ref 和 reactive 实现双向数据绑定四.toRef 和 toRefs 的使用…...
fastadmin:如何点击按钮弹出存在的指定页面的弹窗
样式:方法一:直接使用超链接进行操作{:url(popup/purchase/itemno)}:表示地址信息btn-dialog:表示弹窗<a href"{:url(popup/purchase/itemno)}" title"跳转第三方" class"btn btn-success btn-dialog…...
【storybook】你需要一款能在独立环境下开发组件并生成可视化控件文档的框架吗?(三)
storybook插件addons核心插件插件APIargTypes写文档组件注释法MDX生成在线可视化UI文档上一篇: https://blog.csdn.net/tuzi007a/article/details/129194267插件addons 插件用于增强storybook的UI功能。 核心插件 storybook/addon-essentials 它几乎控制了整个s…...
Android源码分析 —— Activity栈管理(基于Android8)
0. 写在前面 本文基于 Android8.0源码,和Android9.0大同小异,但和Android10.0差别非常大!新版改用ATM来管理Activity的启动,Activity的生命周期也通过XXXItem来管理。由于我分析的Activity启动流程就是基于Android8/9的ÿ…...
Python实现贝叶斯优化器(Bayes_opt)优化支持向量机分类模型(SVC算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。1.项目背景贝叶斯优化器(BayesianOptimization) 是一种黑盒子优化器,用来寻找最优参数。贝叶斯优化器是基…...
【华为OD机试模拟题】用 C++ 实现 - 分积木(2023.Q1)
最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...
FFmpeg/OpenCV 实现全屏斜体水印
实现思路 🤔 基于ffmpeg,画布的方式,创建画布 -> 水印 -> 旋转 -> 抠图 -> 叠加到图像上基于ffmpeg,旋转图片的方式,填充 -> 水印 -> 顺时针旋转 -> 逆时针旋转 -> 截图基于opencvÿ…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
