当前位置: 首页 > news >正文

C语言string.h常用函数总结

void *memcpy(void *dest, const void *src, size_t n);

从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中.


void *memmove( void* dest, const void* src,size_t count);

由src所指内存区域复制count个字节到dest所指内存区域。
memmove用于从src拷贝count个字符到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。但复制后src内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。


void *memset(void *s, int ch, size_t n);

将s中前n个字节(typedef unsigned int size_t)用ch替换并返回s。
memset作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法.


int memcmp(const void *buf1, const void *buf2, unsigned int count);

比较内存区域buf1和buf2的前count个字节。
当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0


extern char *strcpy(char* dest, const char *src);

把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间.src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。


char * strncpy(char *dest, char *src,size_t num);

复制src中的内容(字符,数字、汉字....)到dest,复制多少由num的值决定,返回指向dest的指针。如果遇到null字符('\0'),且还没有到num个字符时,就用(num - n)(n是遇到null字符前已经有的非null字符个数)个null字符附加到destination。


extern char *strcat(char *dest,char *src);

把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。


extern char *strncat(char *dest,char *src,int n);

把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。


extern int strcmp(const char *s1,const char * s2);

比较字符串s1和s2。
当s1<s2时,返回值<0
当s1==s2时,返回值=0
当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。


int strncmp(char *str1, char *str2, int maxlen);

此函数功能即比较字符串str1和str2的前maxlen个字符。

如果前maxlen字节完全相等,返回值就=0;

在前maxlen字节比较过程中,如果出现str1[n]与str2[n]不等,则返回(str1[n]-str2[n])。



int strcasecmp (const char *s1, const char *s2);

strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。

若参数s1和s2字符串相等则返回0。

s1大于s2则返回大于0 的值。

s1 小于s2 则返回小于0的值。



int strncasecmp(const char *s1, const char *s2, size_t n)

strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异,

若参数s1和s2字符串相同则返回0 

s1若大于s2则返回大于0的值

s1若小于s2则返回小于0的值.

 

extern char *strchr(const char *s,char c);

查找字符串s中首次出现字符c的位置,返回首次出现c的位置的指针,如果s中不存在c则返回NULL。


extern unsigned int strlen(char *s);

计算字符串s的(unsigned int型)长度,不包括'\0'在内.返回s的长度,不包括结束符NULL。

转载于:https://www.cnblogs.com/Ph-one/p/8474565.html

相关文章:

  • linux 用户态和内核态以及进程上下文、中断上下文 内核空间用户空间理解
  • strace命令
  • Linux系统调用怎么和内核或底层驱动交互的
  • linux系统调用是通过软中断实现的吗
  • linux块设备读写流程
  • linux 块设备-整理(一)
  • 22.Linux-块设备驱动之框架详细分析(详解)
  • linux input输入子系统分析《四》:input子系统整体流程全面分析
  • 形参传递关键点
  • Calling Convention的总结
  • unsigned short A = 10; printf(~A = %u\n, ~A); char c=128; printf(c=%d\n,c); 输出多少?
  • linux中断的下半部机制
  • linux下.so、.ko、.a的区别
  • platform_device和platform_driver的注册过程,及probe函数何时调用的分析 ⭐⭐⭐
  • Linux文件系统学习(一)之相关概念⭐⭐⭐
  • CSS实用技巧干货
  • ES6 学习笔记(一)let,const和解构赋值
  • fetch 从初识到应用
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Javascript弹出层-初探
  • Next.js之基础概念(二)
  • Ruby 2.x 源代码分析:扩展 概述
  • Service Worker
  • session共享问题解决方案
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • ViewService——一种保证客户端与服务端同步的方法
  • 阿里云Kubernetes容器服务上体验Knative
  • 程序员最讨厌的9句话,你可有补充?
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 嵌入式文件系统
  • 使用API自动生成工具优化前端工作流
  • 一道闭包题引发的思考
  • 以太坊客户端Geth命令参数详解
  • HanLP分词命名实体提取详解
  • ionic异常记录
  • Python 之网络式编程
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • $.ajax()参数及用法
  • (2)Java 简介
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (六)c52学习之旅-独立按键
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)重识new
  • ***测试-HTTP方法
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET NPOI导出Excel详解
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)