我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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函数的参数。

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

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

 我们运行查看

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

2.2strncat函数

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

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

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

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

我们运行代码可以看到:

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

2.3strncmp函数

我们进入cplusplus网站

        我们可以看到strncmp的参数是const char * str1, const char * str2, size_t num,由于str1和str2不需要进行修改,只需要进行比较,所以用const进行修饰,size_t是需要比较的字符串的个数。对于strncmp函数的返回值是int类型,

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

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

我们运行可以看到:

函数的返回值是-1。

2.4小结

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

3.特殊的字符串函数

3.1strstr函数

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

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

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

我们运行可以看到:

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

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

#include 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函数

        

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

#include #include 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://blog.csdn.net/Infernal_Puppet/article/details/133439415

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

c++中求字符串长度的函数

c++ 中用 length() 函数求字符串长度,返回字符数量(包括空格)。语法:size_t length() const。C++ 中求字符串长度的函数在 C++ 中,使用 length() 函数可以求字符串的长度。该函数返回字符串中字
c++中求字符串长度的函数
2024-05-12

C语言中字符函数和字符串函数介绍

本篇内容介绍了“C语言中字符函数和字符串函数介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录前言求字符串长度strlen介绍strle
2023-06-20

C语言的字符函数和字符串函数怎么用

这篇文章主要讲解了“C语言的字符函数和字符串函数怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言的字符函数和字符串函数怎么用”吧!一、字符&字符串函数1.strlen--求字符串长
2023-06-26

C语言中有哪些不受限制的字符串函数

C语言中有哪些不受限制的字符串函数?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以
2023-06-06

C语言字符串替换:字符,字符串,字符数组详解

在C语言中,字符串是由字符数组表示的。一个字符串是一个以null字符('\0')结尾的字符数组。字符替换:要替换字符串中的某个字符,可以使用循环遍历字符串的每个字符,然后用新的字符替换需要替换的字符。例如,下面的代码将字符串str中的所有字
2023-08-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录