strcasecmp,strncmp,sscanf ,sscanf,strstr,strcasestr,fseek,Linux access,fprintf,pthread_attr_setdetac

1.strcasecmp

(1)
strcasecmp(忽略大小写比较字符串)
相关函数 bcmp,memcmp,strcmp,strcoll,strncmp
表头文件 #include <strings.h>(不是C/C++的标准头文件,区别于string.h [1] )
定义函数 int strcasecmp (const char *s1, const char *s2);
函数说明 strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。
返回值 若参数s1和s2字符串相等则返回0。s1大于s2则返回大于0 的值,s1 小于s2 则返回小于0的值。

#include <strings.h>
main()
{
	char *a="aBcDeF";
	char *b="AbCdEf";
	if(!strcasecmp(a,b))
	printf("%s=%s\n",a,b);
}
执行 aBcDeF=AbCdEf
注意与strncasecmp()的区别,strncasecmp 只比较前 n 个字符。不要弄混了。

(2)参考:

https://baike.baidu.com/item/strcasecmp

2.strncmp

(1)
strncmp函数为字符串比较函数,字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。其函数声明为int strncmp ( const char * str1, const char * str2, size_t n );功能是把 str1 和 str2 进行比较,最多比较前 n 个字节,若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 小于s2,则返回小于0的值

(2)参考:
https://baike.baidu.com/item/strncmp

3. sscanf

(1)C 库函数 int sscanf(const char *str, const char *format, …) 从字符串读取格式化输入。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
   int day, year;
   char weekday[20], month[20], dtm[100];

   strcpy( dtm, "Saturday March 25 1989" );
   sscanf( dtm, "%s %s %d  %d", weekday, month, &day, &year );

   printf("%s %d, %d = %s\n", month, day, year, weekday );
    
   return(0);
}

让我们编译并运行上面的程序,这将产生以下结果:

March 25, 1989 = Saturday

(2)参考:
https://www.runoob.com/cprogramming/c-function-sscanf.html

4.sscanf

(1)

har buf[512] = ;
sscanf("123456 ", "%s", buf);
printf("%s\n", buf);

结果为:123456

(2)参考:
https://baike.baidu.com/item/sscanf

5.strstr

(1)
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;否则,返回NULL。

(2)最好去看个eg就明白了
https://baike.baidu.com/item/strstr/811469?fr=aladdin

6.strcasestr函数

(1)
#define _GNU_SOURCE

   #include <string.h>

   char *strcasestr(const char *haystack, const char *needle);

    用于在c串haystack中查找c串needle,忽略大小写。如果找到则返回needle串在haystack串中第一次出现的位置的char指针

    在实际的应用中如果只加上头文件,当编译时会出现  warning: assignment makes pointer from integer without a cast

   这是因为函数的声明在调用之后。未经声明的函数默认返回int型。

   因此要在#include所有头文件之前加  #define _GNU_SOURCE  ,以此解决此问题。

(2)参考:
http://www.cppblog.com/range/archive/2011/10/09/157888.html

7.fseek

(1)定义函数 int fseek(FILE * stream,long offset,int whence);

函数说明 fseek()用来移动文件流的读写位置。参数stream为已打开的文件指针,参数offset为根据参数whence来移动读写位置的位移数。

(2)参考:
https://blog.csdn.net/zhangboyj/article/details/6545818

8.Linux access函数

(1)
#include<unistd.h>

int access(const char* pathname, int mode);

参数介绍:

pathname 是文件的路径名+文件名

mode:指定access的作用,取值如下
F_OK 值为0,判断文件是否存在
 
X_OK 值为1,判断对文件是可执行权限
 
W_OK 值为2,判断对文件是否有写权限
 
R_OK 值为4,判断对文件是否有读权限
 
注:后三种可以使用或“|”的方式,一起使用,如W_OK|R_OK

(2)参考:
https://blog.csdn.net/jinmie0193/article/details/79875662

9.fprintf()

(1)
C 库函数 int fprintf(FILE *stream, const char *format, …) 发送格式化输出到流 stream 中。

(2)参考:
https://www.runoob.com/cprogramming/c-function-fprintf.html

10.pthread_attr_setdetachstate

(1)
pthread_create函数可以指定新创建线程的属性。

pthread_attr_setdetachstate() set detach state attribute in thread attributes object

默认情况下创建的线程的detach state都是PTHREAD_CREATE_JOINABLE,这种属性的线程结束后资源不会释放,等待pthread_join和pthread_detach的调用。

如果detach state 设置成PTHREAD_CREATE_DETACHED,线程结束后调用pthread_join会失败返回EINVAL。

(2)参考:
https://www.cnblogs.com/wanliyun/p/4871609.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

喜欢打篮球的普通人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值