处理字符串:string.h
作者:追风剑情 发布于:2020-4-25 10:27 分类:C
string.h库定义了size_t类型和空指针要使用的NULL宏。 string.h头文件提供了一些分析和操控字符串的函数,其中一些函数以更通用的方式处理内存。
字符串函数 | |
原型 | 描述 |
void *memchr(const void *s, int c, size_t n) |
在s指向对象的前n个字符中查找是否有c。如果找到,则返回首次出现c处的指针,如果未找到则返回NULL |
int memcmp(const void *s1, const void *s2, size_t n) |
比较s1指向对象中的前n个字符和s2指向对象的前n个字符, 每个值都解释为 unsigned char类型。如果n个字符都匹配,则两个对象完全相同;否则,比较两个对象中首次不匹配的字符对。如果两个对象相同,函数返回0;如果在数值上第1个对象小于第2个对象,函数返回于0的值;如果在数值上第1个对象大于第2个对象,函数返回大于0的值 |
void *memcpy(void *restrict s1, const void *restrict s2, size_t n) |
把s2所指向位置上的n字节拷贝到s1指向的位置上,函数返回s1的值。如果两个位置出现重叠,其行为是未定义的 |
void *memmove(void *s1, const void *s2, size_t n) |
把s2所指向位置上的n字节拷贝到s1指向的位置上,其行为与拷贝类似,返回s1的值。但是,如果出现局部重叠情况,该函数会先把重叠的内容拷贝至临时位置 |
void *memset(void *s, int v, size_t n) |
把v的值(转换为 unsigned char)拷贝至s指向的前n字节中,函数返回s |
char *strcat(char *restrict s1, const char *restrict s2) |
把s2指向的字符串拷贝到s1指向字符串后面,s2字符串的第1个字符覆盖s1字符串的空字符。该函数返回s1 |
char *strncat(char *restrict s1, const char *restrict s2, size_t n) |
把s2指向字符串的n个字符拷贝到s1指向的字符串后面(或拷贝到s2的空字符为止)。s2字符串的第1个字符覆盖s1字符串的空字符。函数返回s1 |
char *strcpy(char *restrict s1, const char *restrict s2) |
把s2指向的字符串拷贝到s1指向的位置。函数返回s1 |
char *strncpy(char *restrict s1, const char *restrict s2, size_t n) |
把s2指向字符串的n个字符拷贝到s1指向的位置(或拷贝到s2的空字符为止)。如果在拷贝n个字符之前遇到空字符,则在拷贝字符后面添加若干个空字符,使其长度为n;如果拷贝n个字符没有遇到空字符,则不添加空字符。函数返回s1 |
int strcmp(const char *s1, const char *s2) |
比较s1和s2指向的两个字符串。如果完全匹配,则两字符串相同,否则比较首次出现不匹配的字符对。通过字符编码值比较字符。如果两个字符串相同,函数返回0;如果第1个字符串小于第2个字符串,函数返回小于0的值;如果第1个字符串大于第2个字符串,函数返回大于0的值 |
int strcoll(const char *s1, const char *s2) |
与 strcmp()类似,但是该函数使用当前本地化的 LC_COLLATE类别(由 setlocale()函数设置)所指定的排序方式进行比较 |
int strncmp(const char *s1, const char *s2, size_t n) |
比较s1和s2指向数组中的前n个字符,或比较到第1个空字符位置。如果所有的字符对都匹配,则两个数组相同否则比较两个数组中首次不匹配的字符对。通过字符编码值比较宇符。如果两个数组相同,函数返回0;如果第1个数组小于第2个数组,函数返回小于0的值;如果第1个数组大于第2个数组,函数返回大于0的值 |
size_t strxfrm(char *restrict s1, const char *restrict s2, size_t n) |
转换s2中的字符串,并把转换后的前n个字符(包括空字符)拷贝到s1指向的数组中。用 strcmp()比较转换后的两个字符串的结果和用 strco11()比较两个未转换宇符串的结果相同。函数返回转换后的字符串长度(不包括末尾的空符) |
char *strchr(const char *s, int c) |
查找s指向的字符串中首次出现c的位置。空字符是字符串的一部分。函数返回一个指针,指向首次出现c的位置。如果没有找到指定的c则返回NULL |
size_t strcspn(const char *s1, const char *s2) |
返回s1中未出现s2中任何字符的最大起始段长度 |
char *strpbrk(const char *s1, const char *s2) |
返回一个指针,指向s1中与s2任意字符匹配的第1个字符的位置。如果未发现任何匹配的字符,函数返回NULL |
char *strrchr(const char *s, int c) |
在s指向的字符串中查找末次出现c的位置(即从s2右侧开始查找字符c首次出现的位置)。空字符是字符串的一部分。如果找到,函数返回指向该位置的指针;如果未找到,则返回NULL |
size_t strspn(const char *s1, const char *s2) |
返回s1中包含s2所有字符的最大起始段长度 |
char *strstr(const char *s1, const char *s2) |
返回一个指针,指向s1中首次出现s2中字符序列(不包括结束的空字符)的位置。如果未找到,函数返回NULL |
char *strtok(char *restrict s1, const char *restrict s2) |
该函数把s1字符串分解为单独的记号。s2字符串包含了作为记号分隔符的字符。按顺序调用该函数。第1次调用时,s1应指向待分解的字符串。函数定位到非分隔符后的第1个记号分隔符,并用空字符替换它。函数返回一个指针,指向储存第1个记号的字符串。如果未找到记号,函数返回NULL。在此次调用 strtok()查找字符串中的更多记号。每次调用都返回指向下一个记号的指针,如果未找到则返回NULL(请参看表后面的示例) |
char * strerror(int errnum) |
返回一个指针,指向与储存在 errnum中的错误号相对应的错误信息字符串(依实现而异) |
int strlen(const char *s) |
返回字符串s中的字符数(末尾的空字除外) |
示例:strtok()函数
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> //argc: 参数个数 argv[]: 参数数组 //int main(int argc, char **argv) int main(int argc, char *argv[]) { char data[] = " C is\t too#much\nfun!"; const char tokseps[] = " \t\n#"; //分隔符 char * pt; puts(data); pt = strtok(data, tokseps); //首次调用 while (pt) { puts(pt); pt = strtok(NULL, tokseps);//下一个记号 } system("pause"); return 0; }
标签: C语言
日历
最新文章
随机文章
热门文章
分类
存档
- 2024年11月(3)
- 2024年10月(5)
- 2024年9月(3)
- 2024年8月(3)
- 2024年7月(11)
- 2024年6月(3)
- 2024年5月(9)
- 2024年4月(10)
- 2024年3月(11)
- 2024年2月(24)
- 2024年1月(12)
- 2023年12月(3)
- 2023年11月(9)
- 2023年10月(7)
- 2023年9月(2)
- 2023年8月(7)
- 2023年7月(9)
- 2023年6月(6)
- 2023年5月(7)
- 2023年4月(11)
- 2023年3月(6)
- 2023年2月(11)
- 2023年1月(8)
- 2022年12月(2)
- 2022年11月(4)
- 2022年10月(10)
- 2022年9月(2)
- 2022年8月(13)
- 2022年7月(7)
- 2022年6月(11)
- 2022年5月(18)
- 2022年4月(29)
- 2022年3月(5)
- 2022年2月(6)
- 2022年1月(8)
- 2021年12月(5)
- 2021年11月(3)
- 2021年10月(4)
- 2021年9月(9)
- 2021年8月(14)
- 2021年7月(8)
- 2021年6月(5)
- 2021年5月(2)
- 2021年4月(3)
- 2021年3月(7)
- 2021年2月(2)
- 2021年1月(8)
- 2020年12月(7)
- 2020年11月(2)
- 2020年10月(6)
- 2020年9月(9)
- 2020年8月(10)
- 2020年7月(9)
- 2020年6月(18)
- 2020年5月(4)
- 2020年4月(25)
- 2020年3月(38)
- 2020年1月(21)
- 2019年12月(13)
- 2019年11月(29)
- 2019年10月(44)
- 2019年9月(17)
- 2019年8月(18)
- 2019年7月(25)
- 2019年6月(25)
- 2019年5月(17)
- 2019年4月(10)
- 2019年3月(36)
- 2019年2月(35)
- 2019年1月(28)
- 2018年12月(30)
- 2018年11月(22)
- 2018年10月(4)
- 2018年9月(7)
- 2018年8月(13)
- 2018年7月(13)
- 2018年6月(6)
- 2018年5月(5)
- 2018年4月(13)
- 2018年3月(5)
- 2018年2月(3)
- 2018年1月(8)
- 2017年12月(35)
- 2017年11月(17)
- 2017年10月(16)
- 2017年9月(17)
- 2017年8月(20)
- 2017年7月(34)
- 2017年6月(17)
- 2017年5月(15)
- 2017年4月(32)
- 2017年3月(8)
- 2017年2月(2)
- 2017年1月(5)
- 2016年12月(14)
- 2016年11月(26)
- 2016年10月(12)
- 2016年9月(25)
- 2016年8月(32)
- 2016年7月(14)
- 2016年6月(21)
- 2016年5月(17)
- 2016年4月(13)
- 2016年3月(8)
- 2016年2月(8)
- 2016年1月(18)
- 2015年12月(13)
- 2015年11月(15)
- 2015年10月(12)
- 2015年9月(18)
- 2015年8月(21)
- 2015年7月(35)
- 2015年6月(13)
- 2015年5月(9)
- 2015年4月(4)
- 2015年3月(5)
- 2015年2月(4)
- 2015年1月(13)
- 2014年12月(7)
- 2014年11月(5)
- 2014年10月(4)
- 2014年9月(8)
- 2014年8月(16)
- 2014年7月(26)
- 2014年6月(22)
- 2014年5月(28)
- 2014年4月(15)
友情链接
- Unity官网
- Unity圣典
- Unity在线手册
- Unity中文手册(圣典)
- Unity官方中文论坛
- Unity游戏蛮牛用户文档
- Unity下载存档
- Unity引擎源码下载
- Unity服务
- Unity Ads
- wiki.unity3d
- Visual Studio Code官网
- SenseAR开发文档
- MSDN
- C# 参考
- C# 编程指南
- .NET Framework类库
- .NET 文档
- .NET 开发
- WPF官方文档
- uLua
- xLua
- SharpZipLib
- Protobuf-net
- Protobuf.js
- OpenSSL
- OPEN CASCADE
- JSON
- MessagePack
- C在线工具
- 游戏蛮牛
- GreenVPN
- 聚合数据
- 热云
- 融云
- 腾讯云
- 腾讯开放平台
- 腾讯游戏服务
- 腾讯游戏开发者平台
- 腾讯课堂
- 微信开放平台
- 腾讯实时音视频
- 腾讯即时通信IM
- 微信公众平台技术文档
- 白鹭引擎官网
- 白鹭引擎开放平台
- 白鹭引擎开发文档
- FairyGUI编辑器
- PureMVC-TypeScript
- 讯飞开放平台
- 亲加通讯云
- Cygwin
- Mono开发者联盟
- Scut游戏服务器引擎
- KBEngine游戏服务器引擎
- Photon游戏服务器引擎
- 码云
- SharpSvn
- 腾讯bugly
- 4399原创平台
- 开源中国
- Firebase
- Firebase-Admob-Unity
- google-services-unity
- Firebase SDK for Unity
- Google-Firebase-SDK
- AppsFlyer SDK
- android-repository
- CQASO
- Facebook开发者平台
- gradle下载
- GradleBuildTool下载
- Android Developers
- Google中国开发者
- AndroidDevTools
- Android社区
- Android开发工具
- Google Play Games Services
- Google商店
- Google APIs for Android
- 金钱豹VPN
- TouchSense SDK
- MakeHuman
- Online RSA Key Converter
- Windows UWP应用
- Visual Studio For Unity
- Open CASCADE Technology
- 慕课网
- 阿里云服务器ECS
- 在线免费文字转语音系统
- AI Studio
- 网云穿
- 百度网盘开放平台
- 迅捷画图
- 菜鸟工具
- [CSDN] 程序员研修院
- 华为人脸识别
- 百度AR导航导览SDK
- 海康威视官网
- 海康开放平台
- 海康SDK下载
- git download
交流QQ群
-
Flash游戏设计: 86184192
Unity游戏设计: 171855449
游戏设计订阅号