字符串相关函数【超详细】(strcpy,strstr等string.h中的函数)

文章目录

  • strlen
    • 库中函数定义
    • 函数作用
    • 函数大概“工作”流程
    • 函数使用注意(要求)
    • 函数使用例举
  • strcpy
    • 库中函数定义
    • 函数作用
    • 函数使用注意(要求)
    • 函数大概“工作”流程
    • 函数使用例举
  • strcat
    • 库中函数定义
    • 函数作用
    • 函数使用注意(要求)
    • 函数大概“工作”流程
    • 函数使用例举
  • strcmp
    • 库中函数定义
    • 函数作用
    • 函数使用注意(要求)
    • 函数大概“工作”流程
    • 函数使用例举
  • strncpy
    • 库中函数定义
    • 函数作用
    • 函数使用注意(要求)
    • 函数大概“工作”流程
    • 函数使用例举
  • strncat
    • 库中函数定义
    • 函数作用
    • 函数使用注意(要求)
    • 函数大概“工作”流程
    • 函数使用例举
  • strncmp
    • 库中函数定义
    • 函数作用
    • 函数使用注意(要求)
    • 函数大概“工作”流程
    • 函数使用例举
  • strstr
    • 库中函数定义
    • 函数作用
    • 函数使用注意(要求)
    • 函数使用例举
  • strtok
    • 库中函数定义
    • 函数作用
    • 函数使用注意(要求)
    • 函数大概“工作”流程
    • 函数使用例举

strlen

库中函数定义

size_t strlen(const char *str)

  • 返回值【size_t】:无符号整型
  • 函数参数【str】:要计算长度的字符串的首地址

函数作用

计算字符串的有效长度【’\0’之前的字符个数,不包括’\0’】

函数大概“工作”流程

strlen接收传入的字符串的首地址后开始遍历字符串,遇到第一个‘\0’就停止计算,返回计算长度

函数使用注意(要求)

  1. 包含头文件 string.h
  2. 函数参数指向的字符串必须要有’\0’作为结束标志
  3. 遇到‘\0’就停止计算【函数参数指向的字符串中有多个‘\0’时,只计算第一个‘\0’之前的字符个数

函数使用例举

在这里插入图片描述
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

strcpy

库中函数定义

char* strcpy(char* destinatuon , const char* source)

  • 返回值:目标字符串(destinatuon)的首地址
  • 第一个参数(destinatuon):目标字符串的首地址
  • 第二个参数(source):源字符串的首地址

函数作用

将源字符串(函数参数2:source)全部拷贝到目标字符串(函数参数1:destinatuon)

函数使用注意(要求)

  1. 包含头文件 string.h

  2. 源字符串(函数参数2:source)结尾必须要有’\0’

  3. 会将源字符串中的’\0’拷贝到目标空间。【以此作为字符串结束标志】

  4. 目标空间【函数参数1:destinatuon的空间】必须可修改。

  5. 目标空间必须足够大,以确保能存放源字符串。

函数大概“工作”流程

strcpy将源字符串一个一个拷贝到目标字符串中,当遇到源字符串第一个‘\0’时就停止拷贝,并把源字符串的‘\0’也拷贝回目标字符串,最后返回目标字符串的首地址

函数使用例举

在这里插入图片描述
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

strcat

库中函数定义

char * strcat( char *destination, count char * source)

  • 返回值【char*】:目标字符串的首地址
  • 参数1【destination】:目标字符串的首地址
  • 参数2【 source】:源字符串的首地址

函数作用

把源字符串连接目标字符串之后

函数使用注意(要求)

  1. 包含头文件 sring.h
  2. 目标空间必须可以修改
  3. 源字符串【函数参数2 source】必须以’\0’ 结束
  4. 目标字符串中也得有‘\0’,否则不知道从哪里开始追加【如果目标空间有多个‘\0’,则从第一个‘\0’后开始追加(连接)
  5. 目标空间必须有足够的大,能容纳下连接上源字符串之后的长度。

函数大概“工作”流程

strcat先遍历找到目标字符串第一个‘\0’,再用源字符串的第一个字符将目标字符串的第一个‘\0’覆盖,
并让
字符串的字符一个一个连接在目标字符串之后
直到遇到字符串的第一个‘\0’就停止连接,再将字符串的‘\0’也连接在目标字符串末尾,作为连接成功后的字符串的结束标志
最后再返回字符串的首地址

函数使用例举

在这里插入图片描述

一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

strcmp

库中函数定义

int strcmp ( const char * str1, const char * str2 );

  • 返回值【int】:字符串str1>字符串str2就返回正数,等于就返回0,小于就返回负数
  • 函数参数1:参与比较的字符串的首地址
  • 函数参数2:参与比较的字符串的首地址

函数作用

比较两个字符串的大小

函数使用注意(要求)

  • 包含头文件 string.h
  • str1和str2都必须有‘\0’

函数大概“工作”流程

strcmp同时遍历str1和str2,一个一个地比较它们两个对印字符的大小,如果对应字符相等则比较下一个对对应的字符,只要比出大小就直接以这个比较的大小作为最终结果,返回正/负数/0

在这里插入图片描述

函数使用例举

在这里插入图片描述
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

strncpy

库中函数定义

char * strncpy ( char * destination, const char * source, size_t num );

  • 返回值【char*】:返回目标字符串【函数参数1 destination】的首地址
  • 参数1【 destination】:目标字符串的首地址
  • 参数2【source】:源字符串的首地址
  • 参数2【num】:要拷贝的字符个数

函数作用

把源字符串的前num【函数参数3】个字符拷贝到目标字符串中。
如果num大于源字符串长度才会在拷贝之后加上‘\0’,小于则不会加‘\0’

函数使用注意(要求)

  1. 包含头文件 string.h
  2. 目标空间【函数参数1:destinatuon的空间】必须可修改。
  3. 目标空间必须足够大,以确保能存放源字符串。

函数大概“工作”流程

strncpy将源字符串中的字符一个一个拷贝到目标字符串中
如果在拷贝 num 个字符之前找到 字符串 字符串的末尾【即num大于源字符串的长度】,则 在此之后,目标字符串都用==’\0’填充,直到总共写入 num 个字符。
如果如果 字符串(source) 的长度大于 num,则
不会在目标字符串中追加 ‘\0’ 字符==

函数使用例举

在这里插入图片描述

在这里插入图片描述
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

strncat

库中函数定义

char * strncat ( char * destination, const char * source, size_t num );

  • 返回值【char*】:返回目标字符串【函数参数1 destination】的首地址
  • 参数1【 destination】:目标字符串的首地址
  • 参数2【source】:源字符串的首地址
  • 参数2【num】:要连接的字符个数

函数作用

将源字符串的前num个字符连接到目标字符串之后

函数使用注意(要求)

  1. 包含头文件 string.h
  2. 目标空间【函数参数1:destinatuon的空间】必须可修改。
  3. 目标空间必须有足够的大,能容纳下连接上源字符串之后的长度。
  4. 目标字符串中也得有‘\0’,否则不知道从哪里开始追加【如果目标空间有多个‘\0’,则从第一个‘\0’后开始追加(连接)

函数大概“工作”流程

strncat将源字符串的前num个字符连接在目标字符串之后,
如果源字符串的长度小于 num,则仅连接源字符串‘\0’ 之前的内容,并在连接的字符串末尾加‘\0’
如果源字符串的长度大于 num,则仅连接源字符串前num 个字符并在连接的字符串末尾加‘\0’

函数使用例举

在这里插入图片描述
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

strncmp

库中函数定义

int strncmp ( const char * str1, const char * str2, size_t num );

  • 返回值【int】:字符串str1>字符串str2就返回正数,等于就返回0,小于就返回负数
  • 函数参数1【str1】:参与比较的字符串的首地址
  • 函数参数2【str2】:参与比较的字符串的首地址
  • 函数参数3【num】:参与比较的最大字节数

函数作用

让str1的前num个字符和str2前num个字符相比较,并得出结果

函数使用注意(要求)

  • 包含头文件string.h
  • str1和str2都必须有‘\0’做结束标志

函数大概“工作”流程

strncmp一对一对比较str1的前num个字符和str2前num个字符,如果这对字符相等就比较下一对,如果不相等就直接以这个比较结果作为最终结果

如果再比较到num对之前str1和str2中任意一个遇到了‘\0’,则只对比‘\0’之前的字符对,返回0【此时str1与str2相等】
如果一直比较到了第num对字符,则也返回0【此时str1与str2相等】
在这里插入图片描述

函数使用例举

在这里插入图片描述
在这里插入图片描述
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

strstr

库中函数定义

const char * strstr ( const char * str1, const char * str2 );

  • 返回值【char*】:如果str2是str1的子串就返回str2第一次出现在str1中的位置的地址;如果str2不是str1的子串就返回NULL
  • 函数参数1【str1】:要扫描(遍历)的字符串
  • 函数参数2【str2】:包含要匹配的字符串的字符串

函数作用

判断str2是不是str1的一部分【子串】

函数使用注意(要求)

  • 包含头文件string.h
  • str1和str2都必须有‘\0’做结束标志

函数使用例举

在这里插入图片描述

在这里插入图片描述
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一

strtok

库中函数定义

char * strtok ( char * str, const char * delimiters );

  • 返回值【char* 】:如果找到标记就返回指向标记要划分的子串的开头,找不到标记就返回NULL
  • 函数参数1【str】: 第一次使用时为要分割子串的字符串的首地址,之后为NULL
  • 函数参数2【delimiters】:作为分割标记的标记集合的首地址【分割标记可以是任何字符分隔】

函数作用

根据分割标记将字符串分割,并返回分割出的子串的首地址

函数使用注意(要求)

  • 包含头文件string.h
  • str1和str2都必须有‘\0’做结束标志
  • strtok函数会改变被操作的字符串【会把分割符号改为‘\0’】,所以在使用strtok函数切分的字符串一 般都是临时拷贝并且可修改的内容。
  • 第一次使用strtok时传函数参数1时传要分割子串的字符串的首地址,之后传NULL

函数大概“工作”流程

strtok函数找到str中的下一 个标记,并将其用‘\0’结尾,返回一个指向这个标记的开头的指针。
strtok函数的第一 个参数不为时NULL,函数将找到str中第一个标记,strtok函数将保存它在字符串中的位置。
strtok函数的第一个参数为NULL ,函数将在同一个字符串中被保存的位置开始,查找下一个标记。
直到要分割子串的字符串中没有分割标记时,就返回NULL

函数使用例举

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/434422.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EventSource 长链接执行

EventSource 说明文档MDN 其他参考文档 一、利用node启服务 import fs from fs import express from express const app express() // eventSource 仅支持 get 方法 // 服务器端发送的数据必须是纯文本格式,不能是二进制数据。 app.get(/api, (req, res) > …

预训练语言模型transformer

预训练语言模型的学习方法有三类:自编码(auto-encode, AE)、自回归(auto regressive, AR),Encoder-Decoder结构。 决定PTM模型表现的真正原因主要有以下几点: 更高质量、更多数量的预训练数据增加模型容量…

第20届纪念款-牛客周赛 Round 20 B.C简单构造

B 答案要么是0 要么是1 所以你全部填0或者要么填1然后算就好了 #include<bits/stdc.h> using namespace std; using ll long long; const int N 1e510; int n;void solve() {//全0 全1&#xff1f;string str;cin>>str;n str.size();string str1 str;int ans…

基于springboot网上图书商城源码和论文

在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括网上图书商城的网络应用&#xff0c;在外国网上图书商城已经是很普遍的方式&#xff0c;不过国内的管理网站可能还处于起步阶段。网上图书商城具有网上图书信息管理功能的选择…

Spring 的存储和获取Bean

文章目录 获取 Spring 上下文对象的方式存储 Bean 对象的方式类注解配置扫描路径&#xff08;必须&#xff09;Controller&#xff08;控制器存储&#xff09;Service&#xff08;服务&#xff09;Repository&#xff08;持久层&#xff09;Component&#xff08;工具&#xff…

【Qt无门槛入门】信号以及信号机制及其常用控件(1)

信号与信号槽 信号源&#xff1a;由哪个控件发出的信号。 信号的类型&#xff1a;用户进行不同的操作&#xff0c;就可能出发不同的信号。 信号处理的方式:槽&#xff08;slot&#xff09;某个对象接收到这个信号之后&#xff0c;就会做一些相关的处理动作。但是Qt对象不会无故…

ANN论文总结

本文主要是个人笔记&#xff0c;记录与存储相关的ANN工作&#xff0c;想着写都写了不如发出来与大家分享&#xff0c;大多写得比较简单有些稍微详细一点&#xff0c;内容仅供参考。 CognitiveSSD S. Liang, Y. Wang, Y. Lu, et al. Cognitive SSD: A Deep Learning Engine for…

按配置数据绘制配置型地图marker的icon,自定义marker

一、需求 需要自定义配置数据的marker&#xff0c;其中图片内容要灵活可配置自动生成。此处项目用的百度地图。 效果图&#xff1a; 二、思路 用背景图canvas绘制数字的方式生成icon的图片资源。 再将icon生成对应地图marker。 三、代码 canvasImg.js <!-- * descrip…

“东坡庙会·回家过年”活动正式启动

1月26日下午&#xff0c;“东坡庙会回家过年”启动仪式在黄冈市遗爱湖东坡广场隆重举行。启动仪式以回家过年为故事主线&#xff0c;黄冈历史名人、近现代名人为引&#xff0c;编排了精彩的传统文艺节目&#xff0c;展现武鄂黄黄一家亲、全国人民一家亲、古今名人归故里的黄冈年…

二分算法模版

二分算法模版 实数二分算法模版实数二分模版题 整数二分算法模版向上取整二分模版向下取整二分模版二分模版的注意点二分模版中check函数的实现能够使用二分的条件 二分主要分两类&#xff0c; 一类是对实数进行二分&#xff0c;一类是对整数进行二分 对整数二分又分成2种&…

【第五天】蓝桥杯备战

1、金币 https://www.lanqiao.cn/problems/357/learning/ 解法&#xff1a;暴力 import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);//在此输入…

以太网的 MAC 层

目录 1. MAC 层的硬件地址 48 位的 MAC 地址 2. MAC 帧的格式 以太网 V2 的 MAC 帧格式 无效的 MAC 帧 IEEE 802.3 MAC 与以太网 V2 MAC 帧格式的区别 1. MAC 层的硬件地址 硬件地址又称为物理地址&#xff0c;或 MAC 地址。 IEEE 802 标准为局域网规定了一种 48 位…