strpbrk(), strcasecmp(), strspn()
Linux字符比较函数:
strpbrk()
strcasecmp()
strspn()
#if _MSC_VER
#define strcasecmp _stricmp //strcasecmp 找不到标识符
#endif #include <iostream>
#include <string.h>
using namespace std; int main()
{
//====================== strpbrk (比较的字符串,被比较的字符串)=======================
//函数原型:extern char *strpbrk(char *str1, char *str2)
//参数说明:str1待比较的字符串,str2为指定被搜索的字符串。
//所在库名:#include <string.h> //函数功能:比较字符串str1和str2中是否有相同的字符,如果有,则返回该字符在str1中的位置的指针。
//返回说明:返回指针,搜索到的字符在str1中的索引位置的指针。
char str1[] = "hellostringEFG";
char str2[] = "stringABC";
char *str3 = new char[];
memset(str3, '\0', sizeof(str3)); str3 = strpbrk(str1, str2);
cout << str3 << endl; //output: stringEFG //==================== strcasecmp() ====================
// 头文件:#include <string.h>
//定义函数:int strcasecmp(const char *s1, const char *s2);
//函数说明:strcasecmp()用来比较参数s1 和s2 字符串,比较时会自动忽略大小写的差异。
//返回值:若参数s1 和s2 字符串相同则返回0。s1 长度大于s2 长度则返回大于0 的值,s1 长度若小于s2 长度则返回小于0 的值。
char str4[] = "aBcDef";
char str5[] = "ABCDEF";
if ( == strcasecmp(str4, str5))
{
cout << "equal" << endl;
}
else
{
cout << "NOT equal" << endl;
} //======================== strspn() ===================
//#include <string.h>
//size_t strspn(const char *s, const char *accept);
char *str6 = "";
char *str7 = "";
char *str8 = "65a3456";
char *str9 = ""; printf("%s in %s is %d\n", str6, str7, strspn(str6, str7));
printf("%s in %s is %d\n", str8, str9, strcspn(str8, str9));
//1234567890 in 1234567890 is 10
//65a3456 in 12345678 is 2 //======================== strcspn() ==========================
//#include <string.h>
//size_t strcspn(const char *s, const char *reject);
///////////
//函数说明:strcspn()从参数s 字符串的开头计算连续的字符,而这些字符都完全不在参数reject 所指的字符串中。
//简单地说, 若strcspn()返回的数值为n,则代表字符串s 开头连续有n 个字符都不含字符串reject 内的字符。
//返回值:返回字符串s 开头连续不含字符串reject 内的字符数目。
char *str = "Linux was first developed for 386/486-based pcs. ";
printf("%d\n", strcspn(str, " "));//
printf("%d\n", strcspn(str, "/-"));//
printf("%d\n", strcspn(str, ""));//30
//5 //只计算到" "的出现, 所以返回"Linux"的长度
//33 //计算到出现"/"或"-", 所以返回到"6"的长度
//30 // 计算到出现数字字符为止, 所以返回"3"出现前的长度
// char *str11 = "gdfa1234af5";
// char *str10 = "ha";
char *str11 = "";
char *str10 = "89ab54";
printf("%s in %s is %d\n", str10, str11, strcspn(str11, str10)); system("pause");
return ;
}
strpbrk(), strcasecmp(), strspn()的更多相关文章
- linux常用C函数目录
字符测试篇 isalnum isalpha isascii iscntrl isdigit isgraphis islower isprint isspace ispunct isupper isxd ...
- So many good projects for studying C programming lanuage.
Some one asked a question for studying C programming language on stackexachange.com. He got a bucket ...
- C51 库函数(3)
3.3 STRING.H:串函数 串函数通常将指针串作输入值.一个串就包括2个或多个字符.串结以空字符表示.在函数memcmp,memcpy,memchr,memccpy,memmove和memset ...
- C51 库函数
C-51软件包的库包含标准的应用程序,每个函数都在相应的头文件(.h)中有原型声明.如果使用库函数,必须在源程序中用预编译指令定义与该函数相关的头文件(包含了该函数的原型声明).例如:#include ...
- 走进C标准库(8)——"string.h"中函数的实现相关字符串操作函数
我的strcat: char *strcat(char *dest,char *src) { char * reval = dest; while(*dest) dest++; while(*src) ...
- 18.16 gcc-3.4.5编译错误及解决方法集锦
18.16.1 自写BootLoader错误 ERROR : boot.c:: warning: return type of 'main' is not `int' ANSWER : int mai ...
- 解决CodeBlocks无法自动补全的问题
在Deepin下安装的CB,输入printf.scanf的时候不会自动补全,这样就很难受. 解决办法是在Setting -> Editor -> Syntax highlighting - ...
- 内存及字符串操作篇strlen strchar strcmp strcoll strcpy strdup strstr strtok strspn strrchr bcmp bcopy bzero index memccpy memset
bcmp(比较内存内容) 相关函数 bcmp,strcasecmp,strcmp,strcoll,strncmp,strncasecmp 表头文件 #include<string.h> 定 ...
- C 标准库 - string.h之strpbrk使用
strpbrk Locate characters in string,Returns a pointer to the first occurrence in str1 of any of the ...
随机推荐
- Android常用adb命令总结(一)
ADB是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备. ADB是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是an ...
- Spring MVC整合FreeMarker
什么是Freemarker? FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或 ...
- pandas 学习 第7篇:DataFrame - 数据处理(应用、操作索引、重命名、合并)
DataFrame的这些操作和Series很相似,这里简单介绍一下. 一,应用和应用映射 apply()函数对每个轴应用一个函数,applymap()函数对每个元素应用一个函数: DataFrame. ...
- 死磕 java同步系列之ReentrantLock源码解析(一)——公平锁、非公平锁
问题 (1)重入锁是什么? (2)ReentrantLock如何实现重入锁? (3)ReentrantLock为什么默认是非公平模式? (4)ReentrantLock除了可重入还有哪些特性? 简介 ...
- vscode 通过ftp发布vue到azure服务器
参考资料:vs code配置ftp连接远程服务器实现代码文自动上传 1.在vscode应用商店中搜索拓展sftp插件,然后进行安装.2.安装完成后重启窗口,按快捷键Ctrl+shift+p,输入sft ...
- php实现大文件断点续传下载实例
php实现大文件断点续传下载实例,看完你就知道超过100M以上的大文件如何断点传输了,这个功能还是比较经典实用的,毕竟大文件上传功能经常用得到. require_once('download.clas ...
- git fetch & pull详解
1.简单概括 先用一张图来理一下git fetch和git pull的概念: 可以简单的概括为: git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中. 而g ...
- 再来五道剑指offer题目
再来五道剑指offer题目 6.旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4, ...
- Taro多端自定义导航栏Navbar+Tabbar实例
运用Taro实现多端导航栏/tabbar实例 (H5 + 小程序 + React Native) 最近一直在捣鼓taro开发,虽说官网介绍支持编译到多端,但是网上大多数实例都是H5.小程序,很少有支持 ...
- 关于在 ASP.NET 的 Global.asax 中 Application_Error 方法内,设置跳转到自定义错误页无效的问题
转自:https://www.cnblogs.com/OpenCoder/p/5070645.html 在 Global.asax 中的 Application_Error 方法中,使用 Respon ...