技术标签: Linux操作系统
(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
(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
(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
(1)
har buf[512] = ;
sscanf("123456 ", "%s", buf);
printf("%s\n", buf);
结果为:123456
(2)参考:
https://baike.baidu.com/item/sscanf
(1)
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;否则,返回NULL。
(2)最好去看个eg就明白了
https://baike.baidu.com/item/strstr/811469?fr=aladdin
(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
(1)定义函数 int fseek(FILE * stream,long offset,int whence);
函数说明 fseek()用来移动文件流的读写位置。参数stream为已打开的文件指针,参数offset为根据参数whence来移动读写位置的位移数。
(2)参考:
https://blog.csdn.net/zhangboyj/article/details/6545818
(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
(1)
C 库函数 int fprintf(FILE *stream, const char *format, …) 发送格式化输出到流 stream 中。
(2)参考:
https://www.runoob.com/cprogramming/c-function-fprintf.html
(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
https://blog.csdn.net/jizhidexiaoming/article/details/82502280
背景介绍:主机用的是WiFi,虚拟机的Ubuntu是用的以太网,并且设置的是静态ip,VM网络配置的是自定义。平时主机可以在关闭WiFi且连接网线的情况下ping通虚拟机。综上情况,我想让Ubuntu也能上网,于是搜索相关解决方案,在结合网上大佬们的方案后我摸索出一个解决方案,方案如下:第一步打开VM的可移动设备,再选择网络适配器,再选择设置。第二步选择网络连接为自定义,选择VMnet...
eclipse的svn提交时如果断网,选择取消后等待时间太长,怎么解决?使用Eclipse通过VPN连接到SVN。有时VPN连接断开,忘记重连VPN就提交时,必须等待10分钟直到超时。等待时间太长怎么办?解决办法:修改SVN连接超时的时间。具体修改servers文件如下C:\用户\用户名\AppData\Roaming\Subversion\servers我的路径是:C:\Users\xxx\AppData\Roaming\Subversion\servers记事本打开servers搜索[gl
图片打开以及视频帧保存读取的经验记录
X夫妇二人试图同时从同一账户(总额1000)中支取1000。由于余额有1000,夫妇各自都满足条件,于是银行共支付2000。结果是银行亏了1000元。这种两个或更多线程试图在同一时刻访问同一资源来修改其状态,并产生不良后果的情况被称做竞争条件。 为避免竞争条件,需要使Withdraw()方法具有线
javaSE第六章——异常文章目录javaSE第六章——异常java异常概念异常的体系异常处理trycatchfinallythrowsthrowthrows和throw自定义异常java异常概念在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。异常:在java语言中,将程序执行中发生的不正常情况称为“异常”。java程序在执行过程中
中国国内可用API合集笔记OneNote - OneNote支持获取,复制,创建,更新,导入与导出笔记,支持为笔记添加多媒体内容,管理权限等。提供SDK和Demo。 为知笔记 - 为知笔记Windows客户端开放了大量的API,其中绝大部分,都通过COM提供,可以在javascript, C#, C++, Delphi等语言中使用。接口通过IDL(Interface description lan
问题如果从图中某一顶点到达另一顶点的路径可能不止一条,如何找到一条路径使得沿此路径上各边的权值总和(称为路径长度)达到最小。可以将适用最短路的算法分为单源最短路和多源最短路。解析单源最短路算法Dijkstra对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径每次找到离源点最近的一个顶点,然后以该顶点为中心进行扩展,最终得到源点到其余所有点的最短路径。即从剩余路径中找最短的路径...
Matlab-车牌识别⻋牌自动识别技术的关键在于⻋牌定位、字符切割、字符识别及后续处理等Hough变换的方法在⻋牌区域变形或图象被污损情况下容易失效灰度分割则比直线检测的方法要稳定,但当图象在有许多与⻋牌的灰度非常相似的区域时,该方法也容易失效纹理分析在遇到类似⻋牌纹理特征的其他因素干扰时,⻋牌定位正确率也会受到影响过程&结果????Matlab代码????main.m????cl...
骑士李四记录在java中对文件的操作也是很重要的一块,我们这里来复习总结一下文件操作的基本使用1.提纲:1.文件的创建2.文件的删除3.文件的查看4.文件的获取5.文件的读写2.代码:package com.pengli.programutils.utils.javabase;import java.io.*;/** * @Description: 文件的操作 * @Author: pengli * @CreateDate: 2020/5/24 10:31 */publi
I need to read a .dat file in python which has 12 columns in total and millions of lines of rows. I need to divide column 2,3 and 4 with column 1 for my calculation. So before I load that .dat file, d...
Thread,Looper的组合是非常常见的组合方式。Looper可以是和线程绑定的,或者是main looper的一个引用。下面看看具体app层的使用。首先定义thread:package com.joyfulmath.androidstudy.thread;import com.joyfulmath.androidstudy.TraceLog;import ...