c/c++ strcmp、strstr用法以及str系列中其它函数的用法总结

38 篇文章 1 订阅
34 篇文章 0 订阅

c/c++ strcmp、strstr用法以及str系列中其它函数的用法总结

设备/引擎:Mac(11.6)/cocos

开发工具:Xcode(13.0)

内容概述: c/c++str系列函数的用法总结

最近工程中需要对字符串进行判断操作,判断其中是否包含某段字符,如:判断一个字符串中是否有“monkey”字符

这种情况下就需要用到str系列中的strstr

1.strstr
函数定义:char *strstr(const char str1, const char *str2)
函数功能:查找字符串str2在str1中出现的位置,找到则返回位置,否则返回NULL。
根据定义就能很明确的知道此函数可以用作判断字符A中是否包含字符“b”
只需要判断是否为空即可,如果你需要知道该字段在字符A中的位置,可以取其返回值,写法如下:

if(strstr(A,"monkey")!=NULL){
}

之前经常用的都是strcmp,用来比较两段字符,不过却不能来判断某段字符是否包含在某个字符串中

2.strcmp
函数定义: int strcmp(const char *str1, const char *str2).
函数功能:比较两个字符串
结果:
当str1指向的字符串大于str2指向的字符串时,返回正数。
当str1指向的字符串等于str2指向的字符串时,返回0。
当str1指向的字符串小于str2指向的字符串时,返回负数。
写法如下:

if(strcmp(A,B)==0){
}else if(strcmp(A,B)>0){
}else if(strcmp(A,B)<0){
}

3.strcpy
函数定义:char *strcpy(char *__dst, const char *__src)
函数功能:拷贝字符串内容到目的串,把_src所指向的内容拷贝到_dst

const char A[20];
const char B[] = "monkey"; 
strcpy(A,B);

4.strcat
函数定义:char *strcat(char *__s1, const char *__s2)
函数功能:连接两个字符串,把_s2连接到_s1后面;返回_s1地址

const char A[20] = "mon";
const char B[20] = "key";
strcat(A,B);

5.strlen
函数定义:unsigned in strlen(const char *str)
函数功能:返回字符串str的长度(不包括’\0’)

const char A[20] = "money";
int length = strlen(A);

6.strchr() strrchr()
strchr:char *strchr(char *str, char c)
功能:查找str中首次出现字符c的位置,如果有,则返回出现的位置,否则返回NULL

strrchr:char *strrchr(char *str, char c)
功能:查找str中最后一次出现字符c的位置,如果有,则返回出现的位置,否则返回NULL

const char A[20] = "hedgehhog";
const char C[20] = "";
c = strchr(A,"h");			//在字符A中第一次出现字母h的位置及后面的字母
c = strrchr(A,"h");			//在字符A中最后一次出现字母h的位置及后面的字母

7.strtok
函数定义:char* strtok( char* str,const char* sep );
函数功能:找到str中的下一个标记sep,并将其用 \0 结尾,返回一个指向这个标记的指针。(注: strtok函数会通过置零操作改变被操作的字符串,所以在使用strtok函数切分的字符串一般都是临时拷贝的内容 并且可修改)

const char A[20] = "hedgehhog";
const char B[20] = "d";
strtok(A,B);
strtok(NULL,B);

有关str系列的函数暂时总结了上面这些。
希望能给大家带来帮助!!!有什么问题需要讨论的可以评论私信欢迎讨论~

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GameTomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值