开发者

C语言字符函数与字符串函数的实现示例

目录
  • 1. 字符函数
    • 1.1 字符分类函数
    • 1.2 字符转换函数
  • 2. 字符串函数
    • 2.1 strlen android函数
    • 2.2 strcpy 函数
    • 2.3 strcat 函数
    • 2.4 strcmp 函数
    • 2.5 strncpy 函数
    • 2.6 strncat 函数
    • 2.7 strncmp 函数
    • 2.8 strstr 函数
  • 结语

    1. 字符函数

    在C语言标准库中提供了一系列用于处理字符的函数,这些函数定义在 <ctype.h>头文件中。

    字符函数分为两种:字符分类函数和字符转换函数

    1.1 字符分类函数

    C语⾔中有⼀系列的函数是专⻔做字符分类的,也就是⼀个字符是属于什么类型的字符。

    C语言字符函数与字符串函数的实现示例

    例如:islower函数是判断参数部分python是否为小写字母,如果是小写字母就返回非0的数字,如果不是小写字母就返回0

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

    运行结果:

    C语言字符函数与字符串函数的实现示例

    练习:写⼀个代码,将字符串中的⼩写字⺟转⼤写,其他字符不变

    #include<stdio.h>
    #include<ctype.h>
    int main()
    {
    	char str[] = "hello world";
    	int i = 0;
    	while (str[i])
    	{
    		if (islower(str[i]))
    		{
    			str[i] = str[i] - 32;
    		}
    		i++;
    	}
    	printf("%s", str);
    	return 0;
    }

    运行结果:

    C语言字符函数与字符串函数的实现示例

    对于剩余的字符分类函数,大家可以手动进行尝试一下,这里就不在进行详细介绍啦

    1.2 字符转换函数

    C语⾔提供了2个字符转换函数:

    tolower ( c ); //将参数传进去的⼤写字⺟转⼩写
    toupper ( c ); //将参数传进去的⼩写字⺟转⼤写

    tolower函数示例:

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

     

    C语言字符函数与字符串函数的实现示例

    toupper函数示例:

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

    C语言字符函数与字符串函数的实现示例

    学习完字符转换函数后,我们将上面练习的代码进行改造一下:

    int main()
    {
    	char str[] = "hello world";
    	int i = 0;
    	while (str[i])
    	{
    		if (islower(str[i]))
    		{
    			str[i] = toupper(str[i]);
    		}
    		i++;
    	}
    	printf("%s", str);
    	return 0;
    }

    C语言字符函数与字符串函数的实现示例

    上⾯的代码,我们将⼩写转⼤写,是-32完成的效果,有了转换函数,就可以直接使⽤ tolowe函数。

    2. 字符串函数

    在C语言标准库中的<string.h>头文件中提供了一系列用于处理字符串的函数,这些函数用于字符串的复制、连接、比较、搜索、分割等操作。

    下面介绍一些C语言中常用的字符串函数

    2.1 strlen 函数

    C语言字符函数与字符串函数的实现示例

    strlen函数是用来计算参数(字符串)长度的(不包括终止的空字符 \0 )

    strlen函数的注意事项:

    • 字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前⾯出现的字符个数(不包    含 '\0' )。
    • 参数指向的字符串必须要以 '\0' 结束。
    • 注意函数javascript的返回值为 size_t,是⽆符号的( 易错 )
    •  strlen的使⽤需要包含头⽂件

    strlen函数的使用:

    C语言字符函数与字符串函数的实现示例

    注意这里的初始化方式会在 str字符数组默认最后加上一个 \0,如果用另一种初始化方式会出现什么现象呢?

    C语言字符函数与字符串函数的实现示例

    为什么这里计算str字符数组的长度是74呢?因为这里的初始化方式是不会自动补上 \0,所以strlen函数会根据地址一直往后找,直到找到 \0,所以这里的 74 实际上是一个随机值。

    C语言字符函数与字符串函数的实现示例

    此时我们在数组的末尾加上 \0 这时候strlen函数计算的结果就是 \0前面的字符个数。 

    2.2 strcpy 函数

    strcpy函数会将源指向的字符串复制到目标指向的数组中,包括终止的空字符(并在该点停止)

    C语言字符函数与字符串函数的实现示例

    strcpy函数的注意事项: 

    • destination指向字符串复制到的数组,source指向要复制的字符串
    • 源字符串必须以 '\0' 结束。
    • 会将源字符串中的 '\0' 拷⻉到⽬标空间。
    • ⽬标空间必须⾜够⼤,以确保能存放源字符串。(否则会出现栈帧空间溢出的现象)
    • ⽬标空间必须可修改。

    例如:

    C语言字符函数与字符串函数的实现示例

    2.3 strcat 函数

    C语言字符函数与字符串函数的实现示例

    strcat函数是将字符串source连接到destination的末尾(包括终止的空字符 \0)

    strcat函数的注意事项:

    • 源字符串必须以 '\0' 结束。
    • ⽬标字符串中也得有 \0 ,否则没办法知道追加从哪⾥开始。
    • ⽬标空间必须有⾜够的⼤,能容纳下源字符串的内容。
    • ⽬标空间必须可修改。

    例如:

    C语言字符函数与字符串函数的实现示例

    注意这里被追加的目标空间必须保证足够大,否则也会出现栈帧空间溢出的现象

    C语言字符函数与字符串函数的实现示例

    那么strcat函数是否可以自己追加自己呢?其实是可以的,但是一般不会这样使用,使用不当很容易造成死循环的问题 ,对于自己追加自己,我们一般使用strncat函数,在下面我们将会了解到strncat函数。

    2.4 strcmp 函数

    C语言字符函数与字符串函数的实现示例

    strcmp函数是用于两个字符串进行比较的

    • 如果第⼀个字符串⼤于第⼆个字符串,则返回⼤于HzsPGOuiCa0的数字
    • 如果第⼀个字符串等于第⼆个字符串,则返回0
    • 如果第⼀个字符串⼩于第⼆个字符串,则返回⼩于0的数字 

    例如:

    C语言字符函数与字符串函数的实现示例

    2.5 strncpy 函数

    strncpy和strcpy是非常相似的,strncpy在参数部分加上了复制的字节个数(size_t  num)

    C语言字符函数与字符串函数的实现示例

    用法与strcpy也是一模一样的,只是这时候可以由我们操控复制多少个字节(num)到目标位置。

    例如:

    C语言字符函数与字符串函数的实现示例

    注意:如果源字符串的⻓度⼩于num,则拷⻉完源字符串之后,在⽬标的后边追加0,直到num个。 

    2.6 strncat 函数

    对比strcat函数,strncat函数在参数部分也多了一个(size_t num)追加的字节个数

    C语言字符函数与字符串函数的实现示例

    例如:

    C语言字符函数与字符串函数的实现示例

    这时候就可以自己操控自己想要追加的内容了

    注意:如果source 指向的字符串的⻓度⼩于num的时候,只会将字符串中到 \0 的内容追加到destination指向的字符串末尾

    例如:

    C语言字符函数与字符串函数的实现示例

    2.7 strncmp 函数

    对比strcmp函数,strjavascriptncmp函数在参数部分也多了一个(size_t num)比较的字节个数

    C语言字符函数与字符串函数的实现示例

    ⽐较str1和str2的前num个字符,如果相等就继续往后⽐较,最多⽐较num个字⺟,如果提前发现不⼀ 样,就提前结束,⼤的字符所在的字符串⼤于另外⼀个。如果num个字符都相等,就是相等返回0

    例如:

    C语言字符函数与字符串函数的实现示例

     此时只是比较的str1和str2中的前3个字符,前三个字符相等所以返回值为0

    2.8 strstr 函数

    strstr函数的作用是在一个字符串(str1)中查找第一次出现的子字符串(str2),并返回指向该子字符串的指针,如果没有找到子字符串,则返回NULL(空指针)

    C语言字符函数与字符串函数的实现示例

    例如:

    C语言字符函数与字符串函数的实现示例

    结语

    以上就是C语言中常见的字符函数以及字符串函数,到此这篇关于C语言字符函数与字符串函数的实现示例的文章就介绍到这了,更多相关C语言字符函数与字符串函数内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜