1、strcmp:字符串比较
if (strcmp(pOpt,"HASH") == 0)
0:相同
大于0:字符串1大于字符串2
小于0:字符串1小于字符串2
2、memset:清空结构体
memset(&stTest,sizeof(struct sample_struct));
如果是数组:
struct sample_struct TEST[10];
则
memset(TEST,sizeof(struct sample_struct)*10);
3、sscanf:格式取值
sscanf( “abcdef ghijk”,“%s“,s);//遇到空格赋值截止
puts( s );//abcdef
sscanf( “abcdefghijk “,“%4s“,s);//取指定长度的字符串
puts(s);//abcd
sscanf( “abcdefghijk “+4,“%s”,s);//略去指定长度,取后面的字符串
puts(s);//efghijk
sscanf( “abcdefghijk”,“%[^i]“,s);//取指定字符截止的字符串
puts(s);//abcdefgh
sscanf( “abcdefghijkLMNOPQ”,“%[^A-Z]“,s);//取指定字符集截止的字符串
puts(s);//abcdefghijk
sscanf( “abcdefg#hijkLMN@OPQ”,“%*[^#]#%[^@]“,s);//取指定字符之间的字符串
puts(s);//hijkLMN
sscanf( “hello world!”,“%*s%s“,s);
puts(s);//world!
注意:
“%[^f]”,^ 的意思是非
%*d和%*s,* 是表示跳过此数据不读入. (也就是不把此数据读入参数中)
4、strcpy:字符串拷贝(char数组)
strcpy(xmlInfo.szProtocol,m_protoName.GetBuffer());
5、strncasecmp:用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异。
相关函数:bcmp,memcmp,strcmp,strcoll,strncmp
表头文件:#include <strings.h>
函数定义:int strncasecmp(const char *s1,const char *s2,size_t n)
函数说明:strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异。
6、strncmp:这个函数用来比较s1和s2字符串的前maxlen个字符
int strncmp ( const char * str1,const char * str2,size_t num );
这个函数用来比较s1和s2字符串的前maxlen个字符。如果两个字符串相等的话,strncmp将返回0。如果s1是s2的一个子串的话,s1小于s2。此外还有,函数 int strncmp (const char *s1,size_t size) 此函数与strcmp极为类似。不同之处是,strncmp函数是指定比较size个字符。也就是说,如果字符串s1与s2的前size个字符相同,函数返回值为0。
7、chdir:是C语言中的一个系统调用函数(同cd),用于改变当前工作目录,其参数为Path 目标目录,可以是绝对目录或相对目录。
#include <unistd.h>
int chdir(const char *path);
8、umask(0);
chdir("/");
umask(0);
9、strcat 字符串相加
char p3[20] = "111";
char* p4 = "222";
strcat(p3,p4);
printf("%s\n",p3);
10、clrscr:进入文件夹后修改文件默认权限,与chmod相反
清除文本模式窗口 清屏的意思 就是把之前显示出的文字字符去掉 跟cmd里面的清屏的功能是一样的。
11、memcpy(void *dest,void *src,unsigned int count):将s中第13个字符开始的4个连续字符复制到d中。(从0开始)
#include<string.h>
int main(
{
char* s="GoldenGlobalView";
char d[20];
memcpy(d,s+12,4); //从第13个字符(V)开始复制,连续复制4个字符(View)
d[4]='\0'; //memcpy(d,s+14*sizeof(char),4*sizeof(char));也可
printf("%s",d);
getchar();
return 0;
}
输出结果:
View
12. int sprintf( char *buffer,const char *format [,argument] … ):把格式化的数据写入某个字符串
函数功能:把格式化的数据写入某个字符串
函数原型:int sprintf( char *buffer,argument] … );
返回值:字符串长度(strlen)
例子:
char* who = "I";
char* whom = "CSDN";
sprintf(s,"%s love %s.",who,whom); //产生:"I love CSDN. " 这字符串写到s中
sprintf(s,"%10.3f",3.1415626); //产生:" 3.142"
13. (long)getpid():获取当前进程ID
返回值:int
14. char *getlogin() : 获取系统登陆时间用户名
#include <unistd.h>
15. exit(0)与_exit(0)的区别在于一个父进程退出,一个子进程退出
16. getpgid(), int setpgid(pid_t pid,pid_t pgid) : 获取and设置进程组
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
pid_t pid;
if ((pid = fork()) < 0)
{
perror("fork");
exit(1);
}
else if (pid == 0)
{
printf("child PID = %d\n",getpid());
printf("child Group ID = %d\n",getpgid(0)); //返回组id
sleep(7);
printf("-------Group ID of child id change to %d\n",getpgid(0));
exit(0);
}
else if (pid > 0)
{
sleep(1);
setpgid(pid,pid); //让子进程自立门户,成为进程组组长,以它的pid为进程组 id
sleep(13);
printf("\n");
printf("parent PID = %d\n",getpid());
printf("parent's parent PID = %d\n",getppid());
printf(" parent Group ID = %d\n",getpgid(0));
sleep(5);
setpgid(getpid(),getppid()); //改变父进程组id为父进程的父进程
printf("\n-------Group ID of parent is change to %d\n",getpgid(0));
while (1);
}
return 0;
}
输出结果:
17. getpwnam :获取登陆用户相关信息
#include <stdio.h>
#include <pwd.h>
int main()
{
struct passwd * pw;
char *username = "zxl";
pw = getpwnam(username);
if (!pw) {
printf("%s is not exist\n",username);
return -1;
}
printf("pw->pw_name = %s\n",pw->pw_name);
printf("pw->pw_passwd = %s\n",pw->pw_passwd);
printf("pw->pw_uid = %d\n",pw->pw_uid);
printf("pw->pw_gid = %d\n",pw->pw_gid);
printf("pw->pw_gecos = %s\n",pw->pw_gecos);
printf("pw->pw_dir = %s\n",pw->pw_dir);
printf("pw->pw_shell = %s\n",pw->pw_shell);
}
19. snprintf:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char str[10]={0};
int nLen=snprintf(str,sizeof(str),"123456789012345678");
printf("str=%s\n",str);
printf("nLen=%d\n",nLen);
return 0;
}
运行结果:
str=123456789
nLen=18
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。