【C语言】字符与字符串---从入门到入土级详解

这篇具有很好参考价值的文章主要介绍了【C语言】字符与字符串---从入门到入土级详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🦄个人主页:修修修也

🎏所属专栏:C语言

⚙️操作环境:Visual Studio 2022

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串


目录

一.字符类型和字符数组(串)简介

1.ASCII

2.定义,初始化,使用

1>字符的定义及初始化

2>字符串的定义及初始化

二.字符

1.字符的输入与输出

2.常见字符操作函数

   1>字符大小写转换

   2>字符类型判断

三.字符串

1.字符串的输入与输出

2.常见字符串操作函数

1>字符串拷贝

2>字符串长度

3>字符串比较

4>字符串连接与分割

5>字符串搜索与定位


一.字符类型和字符数组(串)简介

1.ASCII

🌱先来看看百度百科对ASCII的定义【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

🌱而ASCII的产生原因是:      

        在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。

🌱ASCII的内容:【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串


2.定义,初始化,使用

1>字符的定义及初始化

        因为计算机使用数字编码来处理字符,即用特定的整数表示特定的字符。我们最常用的编码就是ASCII编码。我们先定义一个名叫ch的字符变量,再给它赋值为’A‘,如:

char ch;
ch='A';

         在C语言中,用单引号括起来的单个字符被称为字符常量。编译器一发现’A‘,就会将其转换成相应的代码值。因此字符数据的初始化中,单引号必不可少。

        实际上,字符是以数值形式储存的,所以也可以使用数字代码值来赋值,如:

char ch=65;

        因为虽然65是int类型,但是它在char类型能表示的范围内,所以将其赋值给ch没问题。


2>字符串的定义及初始化

        字符串是一个或多个字符的序列,如下所示:

"Hello world"

        注意,双引号不是字符串的一部分。双引号仅告知编译器它括起来的是字符串,正如单引号用于标识单个字符一样。

char arr[15]="Hello world";

        实际如上字符串在内存中的存储方式是:

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

        该字符数组的末尾位置的字符\0是空字符,C语言用它标记字符串的结束。空字符不是数字0,它是非打印字符,其ASCII码值是(或等价于)0。C中的字符串一定以空字符结束,这意味着数组的容量必须至少比待存储字符串中的字符数多1。否则如果因为容量不够漏存了\0,将会导致系统出现一些bug。如下bug就是因为数组长度不够存储\0导致的:

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

        因为C语言大多数的库函数在处理字符串时都会默认将\0作为字符串的结尾,如我们后面会提到的:strlen()函数(字符串长度计算函数),strcpy()函数(字符串拷贝函数)等大多都是以识别出\0来作为程序的结束标志,因此对于字符串来说,\0的存在至关重要。但是我们在定义和初始化字符串时,却不用特意在字符串的末尾安放\0,因为当字符数组容量允许时,计算机会默认帮助我们在末尾添上\0的。而在这点上字符串常量也是同理,如:

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

         可以看到,打印的结果没有出现之前的bug现象,因此即便是字符常量,计算机也会默认帮助我们在结尾添上\0。


二.字符

1.字符的输入与输出

字符的输入常用:scanf()函数【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

getchar()函数【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

字符的输出常用:printf()函数

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串putchar()函数【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串


2.常见字符操作函数

   1>字符大小写转换

        方法一:使用 `toupper` 和 `tolower` 函数,这两个函数分别将字符转换为大写和小写形式。

        方法二:使用字母的ASCII码值特性,给大写字母+32转换成小写字母,给小写字母-32转换成大写字母。

        方法三:使用位运算,将字符的 ASCII 码与 32(二进制为 0b00100000)进行按位异或运算,即可将小写字母转换为大写字母,反之亦然。例如,`'a' ^ 32` 的结果为 `'A'`,`'A' ^ 32` 的结果为 `'a'`。如:【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

        有关大小写字母的三种转换方式有感兴趣的朋友可以移步我的这篇博客:【C语言】字母转换大小写的三种方法https://blog.csdn.net/weixin_72357342/article/details/130932158?spm=1001.2014.3001.5502

        里面有非常详细的toupper()函数和tolower()函数的参数解读及使用详解同时还包含方法二和方法三的具体实现步骤。因此这篇博客中对该部分内容就不赘述了。


2>字符类型判断

方法一:库函数判断

字符类型判断相关库函数

序号 函数名 函数作用
1         isdigit() 判断字符是否为数字
2 isalpha() 判断字符是否为字母
3 isalnum() 判断字符是否为数字或字母
4 isspace() 判断字符是否为空格字符
5 isupper()和 islower() 分别用于判断字符是否为大写字母和小写字母
6 iscntrl() 判断字符是否为控制字符
7 isprint() 判断字符是否为可打印字符
8 ispunct() 判断字符是否为标点符号

方法二:使用ASCII数值区间或字符区间判断,如:

char ch='c';
int letter=0;
if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))
            letter++;

上述代码就是使用字符区间来判断的例子。

方法三:当然我们也可以直接使用ASCII码值来进行判断,如:

char ch='s';
int letter=0;
if((ch>=65&&ch<=90)||(ch>=97&&ch<=122))
            letter++;

        有关字符类型的三种判断方式有感兴趣的朋友可以移步我的这篇博客:

【C语言】字符类型判断的三种方式https://blog.csdn.net/weixin_72357342/article/details/130956167?spm=1001.2014.3001.5501

        里面有非常详细的C语言字符判断库函数详解及其使用,同时还包含方法二和方法三的具体实现步骤。因此这篇博客中对该部分内容就不赘述了,有兴趣的可以去看看。


三.字符串

1.字符串的输入与输出

字符串的输入常用scanf()函数,gets()函数,fgets()函数:【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

字符串的输出常用printf()函数,puts()函数,fputs()函数:【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串


2.常见字符串操作函数

1>字符串拷贝

strcpy()函数

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

函数详解见文末文章

strncpy()函数

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串


2>字符串长度

strlen()函数

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

函数详解见文末文章


3>字符串比较

strcmp()函数

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

strncmp()函数

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串


4>字符串连接与分割

字符串连接:

strcat()函数

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

strncat()函数

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

字符串分割:

strtok()函数

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串


5>字符串搜索与定位

strchr()函数

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

strrchr()函数

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串

strstr()函数

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串



结语

希望这篇关于字符与字符串的博客能对大家有所帮助,欢迎大佬们留言或私信与我交流.

学海漫浩浩,我亦苦作舟!关注我,大家一起学习,一起进步!

相关文章推荐

【C语言】strlen()函数

【C语言】strcpy()函数


C语言字符串库函数思维导图:

【C语言】字符与字符串---从入门到入土级详解,C语言,c语言,开发语言,学习,笔记,字符,字符串文章来源地址https://www.toymoban.com/news/detail-840748.html

到了这里,关于【C语言】字符与字符串---从入门到入土级详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 字符串函数(C语言详解)

    字符串是一串连续的且以\\0结尾的字符 注意: 1.以第一种形式初始化字符串时,计算机会自动在字符串末尾加上\\0,所以在给数组申请内存空间时,需要多申请一个字节的内存来存放\\0 2.第二种形式是 常量字符串 ,是 不可以被修改 的 3.第三种形式是字符数组,末尾没有\\0,输

    2024年03月17日
    浏览(45)
  • C语言——详解字符函数和字符串函数(二)

    Hi,铁子们好呀!之前博主给大家简单地介绍了部分 字符和字符串函数 ,那么这次,博主将会把这些字符串函数给大家依次讲完! 今天讲的具体内容如下: 6.1.1 strcmp 函数介绍 它的函数原型如下: 具体的函数介绍如下图所示: 从图中我们得知: - 如果第一个字符串 PTR1 大于

    2024年04月10日
    浏览(46)
  • C语言——详解字符函数和字符串函数(一)

    Hi,铁子们好呀!今天博主来给大家更一篇C语言的字符函数和字符串函数~ 具体讲的内容如下: 前言: 在编程的过程中,我们经常要处理字符和字符串,C语言标准库中提供了一系列库函数,接下来我们就学习一下这些函数。 众所周知,C语言中提供了一系列的字符函数,这些

    2024年03月17日
    浏览(51)
  • C语言——详解字符函数和字符串数组(上)

    目录 一、strlen的使用和模拟实现 1.strlen()函数的介绍 2.strlen()函数的具体使用 3.strlen函数的注意事项 4.strlen函数的模拟实现 二、strcpy的使用和模拟实现 1.strcpy()函数的介绍 2.strcpy()函数的具体使用 3.strcpy()函数的注意事项 4.strcpy函数的模拟实现 三、strcat 的使用和模拟实现  1

    2024年01月16日
    浏览(54)
  • C语言字符串初始化详解:用常量字符串进行字符数组初始化

    简介 字符串初始化 用常量字符串 初始化过程 示范代码 结论 在C语言中,字符串被定义为字符数组。字符串的初始化是指将一个常量字符串复制到字符数组中。本文将详细介绍字符串的初始化方法,并提供相应的示范代码。 在C语言中,有几种常用的方法可以用常量字符串来

    2024年02月15日
    浏览(58)
  • Java语言:字符型的详解、字符串的比较

    目录 前言 一.字符型的知识 二.字符型比较大小 三.字符串比较 equals()方法 equalslgnoreCase()方法 compareTo() 方法 🎁博主介绍:博客名为tq02,已学C语言、JavaSE,目前学了MySQL和JavaWeb 🎥学习专栏:  C语言         JavaSE       MySQL基础 🎄博主链接:tq02的博客_CSDN博客-C语言,Ja

    2024年02月13日
    浏览(67)
  • 【进阶C语言】字符函数和字符串函数(万文详解)

    前言 C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中。 字符串常量适用于那些对它不做修改的字符串函数. 今天将带来C语言函数的使用介绍 分为三部分供大家理解 如果这份博客对大家有帮助,希望

    2024年01月18日
    浏览(64)
  • 【C语言】【字符串函数】【超详解】【下】!!!

    字符串函数【上】: 【C语言】【字符串函数】【超详解】【上】!!!-CSDN博客 前言: 在上一篇中,我们已经详细讲解了C语言字符串函数中用到最多的几种函数的使用及其模拟实现,本篇我们就将学习C语言字符串函数中,一些非常实用但稍有难度的几个字符串函数。 1、

    2024年03月18日
    浏览(51)
  • C语言——字符串函数(七千字详解)

    目录 1、字符串函数 长度不受限制的字符串函数 1.1strlen 注意事项: strlen函数的使用  strlen函数的模拟实现  1.2strcpy 注意事项: strcpy函数的使用  strcpy函数的模拟实现  1.3strcat 注意事项 strcat函数的使用 strcat函数的模拟实现  1.4strcmp strcmp的返回值 strcmp函数的使用 strcmp函数

    2024年02月04日
    浏览(39)
  • C语言 strtok字符串分割函数详解

    strtok 函数的作用是比较独特的,可以用来对字符串进行分割,对于我们获取命令或者数据集合后的数据处理是不可或缺的一步。但是详细介绍 strtok 的博文很少,而且linux手册的介绍也比较简单,这边写篇博文记录一下学习到的这个函数的用法。 函数定义如下: 即从字符串

    2024年02月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包