C 常用函数实例

180it 2020-02-06 PM 347℃ 0条

1、strcmp:字符串比较

if (strcmp(pOpt, "HASH") == 0)

0:相同

大于0:字符串1大于字符串2

小于0:字符串1小于字符串2
2、memset:清空结构体

memset(&stTest,0,sizeof(struct sample_struct));

如果是数组:

struct sample_struct TEST[10];

memset(TEST,0,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”, “%1“, s);//取指定字符截止的字符串

puts(s);//abcdefgh

sscanf( “abcdefghijkLMNOPQ”, “%2“, s);//取指定字符集截止的字符串

puts(s);//abcdefghijk

sscanf( “abcdefg#hijkLMN@OPQ”, “%*3#%4“, s);//取指定字符之间的字符串

puts(s);//hijkLMN

sscanf( “hello world!”, “%*s%s“, s);

puts(s);//world!

注意:

“%5” , ^ 的意思是非

%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, const char *s2, 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("%sn", 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;

}

  1. int sprintf( char buffer, const char format [, argument] … ):把格式化的数据写入某个字符串

函数功能:把格式化的数据写入某个字符串
函数原型:int sprintf( char buffer, const char format [, 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"

  1. (long)getpid():获取当前进程ID

返回值:int

  1. char *getlogin() : 获取系统登陆时间用户名

include <unistd.h>

  1. exit(0)与_exit(0)的区别在于一个父进程退出,一个子进程退出
  2. 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);
}
 

————————————————

原文链接:https://blog.csdn.net/u012206617/article/details/84402494


  1. i
  2. A-Z
  3. #
  4. @
  5. f
支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

C 常用函数实例