C/C++字符函数和字符串函数详解————长度受限制的字符串函数

这篇具有很好参考价值的文章主要介绍了C/C++字符函数和字符串函数详解————长度受限制的字符串函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

个人主页:点我进入主页

专栏分类:C语言初阶      C语言程序设计————KTV       C语言小游戏     C语言进阶

C语言刷题

欢迎大家点赞,评论,收藏。

一起努力,一起奔赴大厂。

目录

1.前言        

2.长度受限制的字符串函数

2.1strncpy函数

2.2strncat函数

2.3strncmp函数

2.4小结

3.特殊的字符串函数

3.1strstr函数

3.2strtok函数


1.前言        

        在上一篇文章中我们讲过了长度不受限制的字符串函数,包括strlen函数,strcmp函数,strcpy函数,strcat函数,学过和没学过的老铁们可以点击长度不受限制的字符串函数

今天我们我们就讲讲长度受限制的字符串函数,包括strncpy函数,strncat函数,strncmp函数,在这些函数中长度受限制是需要我们加上要修改的字节数。还有一些特殊的函数包括strstr函数,strtok函数。今天就来看看我们的内容吧。

2.长度受限制的字符串函数

2.1strncpy函数

我们进入cplusplus函数可以看到strnpcy函数的参数。

C/C++字符函数和字符串函数详解————长度受限制的字符串函数,C语言进阶,c语言

        strncpy函数的返回类型是char*,他的参数是 char * destination, const char * source, size_t num,在这里对于source由于不需要进行修改,只是需要进行拷贝,所以加上const,对于size_num是需要将source字符串的num个字节进行拷贝到destination,在第一个字节处进行修改,详细的代码如下:

#include <stdio.h>
#include <string.h>
int main()
{
	char arr[] = "abcdefghigh";
	char brr[] = "zzzzz";
	strncpy(arr, brr, 4);
	printf("%s", arr);
	return 0;
}

 我们运行查看

C/C++字符函数和字符串函数详解————长度受限制的字符串函数,C语言进阶,c语言

我们发现字符串arr的前4个字节修改为字符串的前4个字节。

2.2strncat函数

同样我们进入cplusplus函数查看它的参数。

C/C++字符函数和字符串函数详解————长度受限制的字符串函数,C语言进阶,c语言

        strncat函数的返回值是char*,它的参数是 char * destination, const char * source, size_t num

和函数strncpy函数,由于source函数不需要进行修改,所以用const函数进行修改,在size_t num是需要连接的字符的个数,详细的代码如下:

#include <stdio.h>
#include <string.h>
int main()
{
	char arr[100] = "abcdefghigh";
	char brr[] = "xzzzzz";
	strncat(arr, brr, 4);
	printf("%s", arr);
	return 0;
}

我们运行代码可以看到:

C/C++字符函数和字符串函数详解————长度受限制的字符串函数,C语言进阶,c语言

在这里我么的字符串brr是source,把他的前4个字符连接到字符串arr后面,同时拷贝一下‘\0’;

2.3strncmp函数

我们进入cplusplus网站

C/C++字符函数和字符串函数详解————长度受限制的字符串函数,C语言进阶,c语言

        我们可以看到strncmp的参数是const char * str1, const char * str2, size_t num,由于str1和str2不需要进行修改,只需要进行比较,所以用const进行修饰,size_t是需要比较的字符串的个数。对于strncmp函数的返回值是int类型,C/C++字符函数和字符串函数详解————长度受限制的字符串函数,C语言进阶,c语言

         如果第一个大于第二个返回大于0的数据,如果第一个小于第二个返回小于0的数据,如果第一个等于第二个则返回0,注意这里的比较是对于前num个字符进行比较,比较的形式和前面的额strcmp一样,具体的代码演示如下:

#include <stdio.h>
#include <string.h>
int main()
{
	char arr[] = "abcdefghigh";
	char brr[] = "abce";
	int ret=strncmp(arr, brr, 4);
	printf("%d", ret);
	return 0;
}

我们运行可以看到:

C/C++字符函数和字符串函数详解————长度受限制的字符串函数,C语言进阶,c语言

函数的返回值是-1。

2.4小结

        对于这三个函数,他们和长度不受限制的类似,只是多了一个限制条件,这个限制条件是限制的source.也就是说num是几个就拷贝几个,里面的循环由遇到‘\0’的while循环,改为了for循环,判定是i<num。

3.特殊的字符串函数

3.1strstr函数

        strstr函数是一个查找子串的函数,它返回最早出现字串的位置,我们进入cplusplus网站进行查看,

C/C++字符函数和字符串函数详解————长度受限制的字符串函数,C语言进阶,c语言

        我们看第一条,它参数和返回值都用const进行修饰,事实上他们两条都一样,只是第一条用const进行修饰,让它的值不能改变,更加的安全,防止非法的修改。我们举个例子来感受一直strstr函数的应用,代码如下:

#include <stdio.h>
#include <string.h>
int main()
{
	char arr[] = "abcabcdefghigh";
	char brr[] = "abcd";
	char *crr=strstr(arr, brr);
	printf("%s", crr);
	return 0;
}

我们运行可以看到:

C/C++字符函数和字符串函数详解————长度受限制的字符串函数,C语言进阶,c语言

我们想要模拟实现,首先画一下它的思路:

C/C++字符函数和字符串函数详解————长度受限制的字符串函数,C语言进阶,c语言

        就是由str2和str1进行记录位置,s1和s2进行比较,不相等str1和s1进行移动,相等str1和str2不动,s1和s2进行移动,相等移动,不相同重新指向str1和str2 ,依次循环,直到str1遇到‘\0’,模拟实现如下:

#include <stdio.h>
char* my_strstr(char* arr, char* brr)
{
	char* str1 = arr, * s1 = arr, * str2 = brr, * s2 = brr;
	while (*str1)
	{
		if (*s2 == '\0')
		{
			return str1;
		}
		if (*s1 == *s2)
		{
			s1++;
			s2++;
		}
		else
		{
			str1++;
			s1 = str1;
			s2 = str2;
		}
	}
}
int main()
{
	char arr[] = "abcabcdef";
	char brr[] = "abcd";
	char* p = my_strstr(arr, brr);
	printf("%s", p);
	return 0;
}

3.2strtok函数

        C/C++字符函数和字符串函数详解————长度受限制的字符串函数,C语言进阶,c语言

        我们可以看到,strtok函数返回类型是char*,它的参数是 、char * str, const char * delimiters,这个函数是字符串切割,需要两个字符串,第一个字符串中出现第二个字符串就会进行切割然后指向此段的首字符,具体的代码如下:

#include <string.h>
#include <stdio.h>
int main()
{
	char arr[] = "abc,abcd@efacd*add";
	char brr[] = ",@*";
	char* str = arr;
	for (str = strtok(arr, brr); str != NULL; str = strtok(NULL, brr))
	{
		printf("%s\n", str);
	}
	return 0;
}

今天的内容就结束了,希望大家可以一键三连。文章来源地址https://www.toymoban.com/news/detail-714518.html

到了这里,关于C/C++字符函数和字符串函数详解————长度受限制的字符串函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • c语言进阶部分详解(详细解析字符串常用函数,并进行模拟实现(下))

    上篇文章介绍了一些常用的字符串函数,大家可以跳转过去浏览一下:c语言进阶部分详解(详细解析字符串常用函数,并进行模拟实现(上))_总之就是非常唔姆的博客-CSDN博客 今天接着来介绍一些:  目录 一.字符串查找 1.strstr() 1.1示例 1.2注意事项: 1.3模拟实现  2.

    2024年02月07日
    浏览(45)
  • PHP strlen()函数详解,PHP获取字符串长度

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 strlen() 可以返回 「字符串」 的 「长度」 。 语法 参数 $str :需要计算长度

    2024年02月15日
    浏览(61)
  • 计算字符串长度的三种方法(库函数 指针 )【详解】

    求字符串长度简单来说就是计算一个字符串(字符数组)中元素的个数即从数组头部计数,直到遇到字符串’\\0’结束符为止, 计数结果不包括’\\0’. C语言中的库函数strlen,它包含于string.h中,因此我们需要在使用前添加头文件 ,具体用法如下: strlen从数组头部计数,直到遇到字

    2024年02月06日
    浏览(92)
  • 进阶C语言-字符函数和字符串函数

    ✅注意事项: 字符串以 \\\'\\0\\\' 作为结束标志, strlen函数 返回的是在字符串中 \\\'\\0\\\' 前面出现的字符个数(不包括 \\\'\\0\\\' ) 参数指向的字符串必须以 \\\'\\0\\\' 结束 注意函数的返回值是 size_t ,是无符号的 ✅运行示例: 🔭1.1.1strlen函数的模拟实现 📖1.计数器法 assert函数 的 作用 是断言,

    2024年02月04日
    浏览(49)
  • C语言进阶---字符串+内存函数

    重点介绍处理字符和字符串的库函数的使用和注意事项。 求字符串长度 strlen() 长度不受限制的的字符串函数 strcpy() strcat() strcmp() 长度受限制的的字符串函数 strncpy() strncat() strncmp() 字符串查找 strstr() strtok() 错误信息报告 strerror() 字符操作 内存操作函数 memcpy() memmove() memset(

    2024年02月12日
    浏览(53)
  • C语言中的字符串操作函数自定义实现:标准版与限定长度版

            目录 1. 标准字符串操作函数自定义实现 (a) 自定义strcpy函数 (b) 自定义strcat函数 (c) 自定义strcmp函数 2. 限定长度字符串操作函数自定义实现 (a) 自定义strncpy函数 (b) 自定义strncat函数 (c) 自定义strncmp函数  对字符串的操作是不可或缺的一部分。标准库提供了如strcpy、

    2024年01月21日
    浏览(59)
  • 进阶C语言——字符串和内存函数

    今天我们学点库函数 字符函数和字符串函数 求字符串长度函数-strlen strlen需要的头文件是string.h ,那它的作用是什么呢?? 他是来求字符串长度的,统计的是’\\0’前的字符串长度 size_t是无符号的意思 学会了strlen函数怎么使用,那我们现在模拟实现一下strlen 之前讲过三种方

    2024年02月16日
    浏览(50)
  • 【C语言进阶(三)】字符串操作函数

    💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C语言学习分享⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习更多C语言知识   🔝🔝 C语言的标准库为我们提供了丰富的字符串操作函数与内存操作函数,有我们熟悉的 strlen ,strcpy ,也有我们不熟悉的 strchr , strstr 等

    2024年02月09日
    浏览(71)
  • C语言字符函数和字符串函数详解

           Hello, 大家好,我是一代,今天给大家带来有关字符函数和字符串函数的有关知识        所属专栏:C语言        创作不易,望得到各位佬们的互三呦 在C语言中有一些函数是专门为字符设计的,这些函数的使用都需要包含一个头文件ctype.h 如:(注:以下函数原型都

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

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

    2024年04月10日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包