C语言基础——字符串

一.字符串储存

字符串是由数字、字母、标点符号组成的一串字符,在C语言中,字符串没有专属的数据类型,而是基于字符类型进行表示的,他的存储分为内存存储与数组存储两种形式。

1.内存存储

字符串在内存中是连续存储的,以字符\0结束,\0占用一个储存空间,但\0不会被计入字符串的实际长度在这里插入图片描述

在这里插入图片描述
由上图可知,在C语言中,字符串的地址实际上是该字符串的首地址。所以可以直接将字符串赋给基类型为char的指针变量。

2.数组储存

字符串可以用数组储存,分两种,第一种是使用单个字符依次为数组进行赋值,之后再赋一个结束符(\0)一表示字符串结束在这里插入图片描述

%s打印字符串

第二种相对简单,就是直接使用字符串为数组赋值
在这里插入图片描述
因为字符串结束有个占位符\0,所以字符串长度必须小于数组中元素个数,否则会出现溢出错误

二.使用字符串

在C语言中,字符串常见使用包含指针操作字符换、输入/输出字符串、字符串数组等。

1.指针操作字符串

将字符串赋给指针变量,然后通过指针变量访问内存中的字符串。在这里插入图片描述
在这里插入图片描述

2.输入和输出字符

C语言标准输入库stdio.h提供多种输入和输出相关的函数。其中,输入/输出字符串会用到4个系统函数。

a.输入字符串

输入字符串会用到函数scanf()与函数gets()。
(1)scanf()可以获取用户输入的单个或多个字符串,并且可以将字符串赋给数组变量及指向数组变量的指针变量。

scanf_s("字符串占位符1 字符串占位符2 …… 字符串占位符n",数组变量名1,限制元素个数,数组变量名2,限制元素个数,……,数组变量名n,限制元素个数)

其中,数组名可以替换为指向数组变量的指针变量名在这里插入图片描述
(2)函数gets()可以读取用户输入的单个字符串,并且可以将字符串赋给数组变量及指向数组变量的指针变量

gets(s);

其中s指代数组变量或指针变量名,基类型必须是char。
gets()函数以换行符结束,并且换行符会被丢弃,自动添加结束符’\0’

b.输出字符串

输出字符串要用到函数printf()和puts()。
(1)在函数printf()输出字符串时,会用到占位符(%s)、存放字符串的数组和指向字符串的指针变量,与scanf()配合使用。
(2)puts()只能输出一个字符串,不能输出数值或进行格式变换,并且在输出字符串后会自动换行。与gets()配合使用在这里插入图片描述

3.字符串数组

字符串数组是指对多个字符串以二维数组或指针数组的形式进行管理/字符串数组的二维数组形式是指直接将字符串赋给二维数组。
在这里插入图片描述
二维数组常量表达式2要大于每个字符串的长度,因为有个’\0’占位符

三.字符串系统函数

为了方便对字符串的管理和使用,C语言提供了多个系统函数来对字符串进行操作。这些系统函数全部来源于头文件string.h

1.复制字符串函数

复制字符串函数 strcpy() 可以对一个字符串进行复制,并返回复制的字符串。

strcpy(a,b);

将b复制到a。
在这里插入图片描述

2.字符串比较函数

字符串比较函数strcmp()可以对两个字符串大大小进行比较。

strcmp(str1,str2);

其中,str1指代第一个字符串;str2指代第二个字符串,如果相同返回0,如果str1大于str2,返回正值,否则返回负值。

str1和str2可以为数组变量名、指针变量名以及字符串3种形式。其中,数组变量与指针变量基类型必须是char。在这里插入图片描述

3.连接字符串函数

连接字符串函数strcat()可以在一个字符串后添加另外一个字符串。

strcat(a,b);
连接字符串函数strcat()会将b指向的字符串连接到a指向的地址末尾处
此过程对b无影响。

在这里插入图片描述

4.字符串长度函数

字符串长度函数strlen()可以将一个字符串长度进行返回。

strlen(a);
其中a可以指带数组变量名,指针变量名及字符串。这里,数组变量与指针变量的基类型
必须为char。

在这里插入图片描述

5.字符串大/小写转换函数

a.字符串小写转换函数

字符串小写转换函数_strlwr()可以将字符串中的字符全部转换为小写。

_strlwr(s);
s指代一个字符串

在这里插入图片描述

b.字符串大写转换函数

字符串大写转换函数_strupr()可以将字符串中的字符全部转换为大写。

_strupr(s);
其中,s指代一个字符串。

在这里插入图片描述

  • 37
    点赞
  • 249
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Jellyfin是一款开源的媒体服务器软件,能够将你的音乐、电影、电视节目和照片等媒体文件以流媒体的形式,方便地在各种设备上播放和管理。而威联通(QNAP)则是一家知名的网络存储设备厂商,提供高性能的NAS(网络附加存储)设备。 Jellyfin可以在威联通的NAS设备上进行安装和使用。通过将Jellyfin安装在威联通的NAS上,你可以将NAS设备变成一个功能强大的媒体服务器。这样,在家庭网络中的各种设备(如智能电视、手机、平板电脑等)上就可以通过Jellyfin客户端软件访问和播放媒体文件。 威联通的NAS设备配备了强大的硬件性能和丰富的扩展性,可以提供足够的存储空间来储存大量的媒体文件。同时,NAS设备还支持RAID技术,可以提供数据备份和冗余,确保你的媒体文件的安全性和稳定性。 通过Jellyfin和威联通的NAS设备的组合,你可以自由地管理和播放你的媒体文件。你可以创建各种媒体库,分类整理你的音乐、电影和电视节目,还可以通过自定义标签和元数据对媒体文件进行搜索和排序。另外,你还可以创建多个用户账号,为家庭成员提供个性化的媒体推荐和播放列表。 总之,Jellyfin和威联通的NAS设备的结合能够为用户提供一个功能丰富、稳定可靠的媒体服务器解决方案。无论是个人还是家庭使用,都能够满足你对多媒体娱乐的需求,并且将你的媒体文件随时随地带到你身边。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dataowu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值