C语言学习(四)

news2024/12/27 1:24:23

char类型数组

字符串,由一个或多个字符组成的序列就做字符串。双引号不是字符串的一部分,只是告诉双引号里的内容是字符串,C语言中没有专门储存字符串的变量类型,字符串都被存储在char类型的数组中。数组由连续的储存单元组成,可以把数组看作是一行连续的多个存在的存储单元,数组是同类型数据元素的有序序列。数组末尾位置的字符\0,这是空字符,C语言用它标记字符的结束,不是数字0,为非打印字符,其ascii码值为0

I am a I 储存

I

a

m

I

\0

每个单元存储一个字节 标记字符的结束

char a 分1个字节 char a[5] 分5个字节

使用字符串

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define a "aaa"
int main(void) {
    char name[20];
    printf("what's your name?\n");
    scanf("%s",name);
    printf("hello,  %s %s\n",name,a);
    return 0;
}

将scanf换成scanf_s会出现打印不出来

#define用这样一句话定义了一个字符常量,不需要在字符串末尾加上\0,也就是空字符,编译器会默认加上。scanf函数只读取了1 1中的第一个1,在遇到空白(空格,制表符或换行符)就停止读取,%s转换说明是打印字符串的,scanf函数值会读取字符串中的第一个单词,而不是整句话。

strlen()函数

一般而言,C把函数库的相关函数归为一类,并为每类函数提供一个头文件。

strlen函数给出了字符串中的字符长度,sizeof函数是以字节为单位给出对象的大小

string.h头文件包含了多个与字符相关的符号,包括strlen函数,%zd的转换说明用来打印sizeof和strlen。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#define a "aaa"

int main(void) {
    char name[40];
    int b;
    printf("what's your name?\n");
    scanf("%s",name);
    printf("%s %s\n",name,a);
    printf("%zd 55 %zd\n", sizeof(name), strlen(name));
    printf("%zd 55 %zd\n", sizeof(a), strlen(a));
    return 0;
}

sizeof和strlen函数输出的结果不一样

对于常量a来说,strlen函数得出的也是字符串中的字符数(包括空格和标点函数),sizeof把末尾的不可见的空字符也计算在内了

sizeof函数可以不用括号,sizeof 22,使用圆括号时取决于运算对象是类型还是特定量(有值或无值的变量)。运算对象时时类型(变量类型,int,float,char)时,圆括号不能少,如sizeof(float);时特定量时,可有可无,一般建议使用圆括号。

printf修饰符

- 左对齐,从左侧开始打印
+ 有符号值,为正加+,为负加-
空格 有符号值为正,加前导空格,为负加前导-
# 把结果转换成另一种形式
0 0代替空格填充字符宽度

转换说明不匹配会造成数据读取出错,参数传递机制,如下

printf("%ld %ld %ld\n",n1,n2,n3)

该调用告诉计算机把变量n1,n2,n3的值传递给程序。这是一种常见的参数传递方式。计算机根据变量类型把这些值放到栈中。程序把传入的值放入被称为栈的内存区域。printf根据转换说明从栈中读取值。当转换说明不匹配时,会造成读取数据不是赋值的值

打印较长的字符串

3种方法 使用多种printf语句

使用\和enter键组合换行

ANSI C 引入的字符串连接

使用scanf()

读取数据时两种情况 ,需要加&(读取变量),不需要加&(字符串数组)

scanf空白字符,使用%s读取一个单词时,无法利用字符宽度读取多个单词,使用字符宽度时,读到字段末尾,或第一个空白字符就停止读取

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

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

相关文章

一文搞懂Redis事务~

先说结论&#xff1a; Redis 的事务模式具备如下特点&#xff1a; 保证隔离性&#xff1b;无法保证持久性&#xff1b;具备了一定的原子性&#xff0c;但不支持回滚&#xff1b;一致性的概念有分歧&#xff0c;假设在一致性的核心是约束的语意下&#xff0c;Redis 的事务可以…

Visual Studio 2019 的快捷键和视图布局使用

文章目录 常见快捷键视图布局 常见快捷键 Ctrl Shift / : 将选中的多行注释&#xff0c;或光标所在行 的单行注释。取消注释 这是此快捷键。 CtrlShift Enter : 重启一行&#xff0c;是从当前行的下面&#xff0c;重启一行。 Ctrl Enter : 重启一行&#xff0c;是从当前行的…

javascript中this指向问题

JavaScript中this指向问题 1、this指向window的情况 对于非箭头函数情况下&#xff0c;谁调用就指向谁,如果函数在全局作用域下调用,里面的this就是window。 在全局作用域下&#xff0c;this window function sum() {console.log(this); }sum(); // windowconsole.log(this…

中电金信:生成式AI热潮下,文本智能走向何方?

突破通用人工智能场景&#xff0c;生成式AI正在向全行业应用进攻。 一个脑筋急转弯&#xff0c;几个月前ChatGPT是这样回答的&#xff1a; 然而&#xff0c;仅仅几个月的迭代&#xff0c;它的回答却让人出乎意料。 看似调侃的对比背后实则是无数次模型训练的支撑。基于数据的激…

[Gitops--3]项目代码发布案例Argocd+Gitlab-Runner

项目代码发布案例ArgocdGitlab-Runner 1. 项目文件 demo项目放在gitee上需要自取 git clone https://gitee.com/qqmiller/godemo.git1.1 项目代码 apidemo.go package mainimport ("github.com/gin-gonic/gin""net/http" )func main() {r : gin.Defau…

GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术应用

随着航空、航天、近地空间等多个遥感平台的不断发展&#xff0c;近年来遥感技术突飞猛进。由此&#xff0c;遥感数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量也大幅增长&#xff0c;使其越来越具有大数据特征。对于相关研究而言&#xff0c;遥感大数据的出现为其提…

Bugku——应急加固1

来打一下bugku的应急加固靶场&#xff0c;靶场链接&#xff1a;https://ctf.bugku.com/ctfplus/detail/id/2.html 启动环境 1、JS劫持域名 直接访问ip地址&#xff0c;发现是xxx学院二手交易市场&#xff0c;随后被劫持跳转到了一个博客页面。 博客地址就是第一个flag&…

记录踩的坑:python gdal 重采样+坐标系转换

源数据&#xff1a;1/0 二值数据&#xff0c;30m 分辨率&#xff0c;WGS_1984_UTM_Zone_53N 坐标系&#xff0c;东北区域。 目标&#xff1a;将源数据制成与 MODIS tile 的坐标系&#xff08;Sinusoidal&#xff09;、分辨率&#xff08;463.3127165m&#xff09;都一致的tif。…

padans关于数据处理的杂谈

情况&#xff1a;业务数据基本字段会有如下&#xff1a; Index([时间, 地区, 产品, 字段, 数值], dtypeobject)这样就会引发一个经典“三角不可能定理”&#xff0c;如何同时简约展现分时序、分产品、分字段数据。&#xff09;一般来说&#xff0c; 1、时序为作为单独的分类&…

10KV高压开关柜怎么进行无线测温

摘要&#xff1a;文章提出了一种用于小车式开关柜的无线测温系统&#xff0c;包括设于小车动触头套管上的温度传感器、环绕设于小车动触头上的电流传感器&#xff0c;温度传感器及电流传感器均分别连接有数据接收处理器&#xff0c;数据接收处理器电连接有设于小车式开关柜上的…

实例分享| anyRTC 部署南京某区城市运行“一网统管”综合调度系统

近年来国家城运中心&#xff0c;加大了对城运信息化系统的建设的投入&#xff0c;通过对城运的信息化建设&#xff0c;提升城市服务能力和现代化管理水平、进一步增强城市竞争力、让信息化切实做到为人民服务的根本能力。 南京市首先提出城市运行”一网统管“的计划&#xff0…

R语言地理空间分析、可视化及模型预测

随着地理信息系统&#xff08;GIS&#xff09;和大尺度研究的发展&#xff0c;空间数据的管理、统计与制图变得越来越重要。R语言在数据分析、挖掘和可视化中发挥着重要的作用&#xff0c;其中在空间分析方面扮演着重要角色&#xff0c;与空间相关的包的数量也达到130多个。在本…

Failed to resolve: com.github.adrielcafe:ffmpeg-android-java:2a627f6ecd

背景 项目中有引用 AndroidAudioConverter&#xff0c;引入方式&#xff1a; implementation com.github.adrielcafe:AndroidAudioConverter:0.0.8 gradle同步及编译代码都会报错&#xff1a; Failed to resolve: com.github.adrielcafe:ffmpeg-android-java:2a627f6ecd 原…

带你浅谈下Quartz的简单使用

Scheduler 每次执行&#xff0c;都会根据JobDetail创建一个新的Job实例&#xff0c;这样就可以规避并发访问的问题&#xff08;jobDetail的实例也是新的&#xff09; Quzrtz 定时任务默认都是并发执行&#xff0c;不会等待上一次任务执行完毕&#xff0c;只要间隔时间到就会执…

C/C++|物联网开发入门+项目实战|C语言基础|养成好习惯---规范编码方法 -学习笔记(5)

文章目录 养成好习惯---规范编码方法为什么规范编码很重要推荐书籍:规范编码的重要性规范编码&#xff0c;从Tab键开始代码行的规范写法空行和空格&#xff0c;让你的代码更赏心悦目空格空行 谈谈C代码的注释注释符位置 好代码&#xff0c;取名很重要商业代码基本要求&#xff…

Unity 热更新基础HybridCLR:安装部署(HybridCLR手记二)

Win 下 打包时遇到 xxxx\il2cpp\libil2cpp\utils\Il2CppHashMap.h(71): error C2039: hash_compare: is not a member of stdext 这是.net 7发布后最新版本vs改动打破了一些向后兼容性引起。你可以回退2022的旧版本或者使用2019之类的版本。 所以建议使用.net 6 之前的版本进行…

面试官:String s = new String(“xyz“) 创建了几个对象?

这个问题相信每个学习 java 的同学都不陌生&#xff0c;作为一个经典的面试题&#xff0c;到现在工作这么多年了我真是认为挺操蛋的一个问题&#xff0c;在网上到现在你仍然可以看见很多讨论这个问题的人&#xff0c;其中不乏工作很多年的人都有争论&#xff0c;我认为还是有必…

Django项目部署在服务器(配置Django+Mysql8.0+Python+Nginx+uWsgi)

Django项目部署在服务器&#xff08;配置DjangoMysql8.0PythonNginxuWsgi&#xff09; 项目配置版本服务器阿里云CentOS 7.6数据库Mysql8.0Python3.7.1 一、更新yum并设置自动更新 1、手动更新yum yum update -y2、安装自动更新的插件 yum install -y yum-cron3、设置自动…

面试官:项目中如何解决跨域问题(HttpClient、注解、网关)

为什么会有跨域问题 因为浏览器的同源政策&#xff0c;就会产生跨域。比如说发送的异步请求是不同的两个源&#xff0c;就比如是不同的的两个端口或者不同的两个协议或者不同的域名。由于浏览器为了安全考虑&#xff0c;就会产生一个同源政策&#xff0c;不是同一个地方出来的…

kafka安装及配置过程

kafka安装及配置过程 kafka 依赖于 zookeeper&#xff0c;zookeeper的安装可看&#xff1a;ZooKeeper的安装和配置过程 先说明一下&#xff0c;集群主机分别是&#xff1a;192.168.127.129&#xff0c;192.168.127.130&#xff0c;192.168.127.131 安装 kafka可以通过官网下…