Vuser中常用的C语言函数(我的学习记录)

来源:互联网 发布:unity 模型 优化 插件 编辑:程序博客网 时间:2024/06/14 02:13

1.strchrstrrchr

     Strchr函数用于查找指定字符在一个字符串中第一次出现的位置,然后返回指向该位置的指针。Char *strchr (const char *string,int c);

     Strrchrstrchr类同只是查询的是指定字符在字符串中最后出现的位置,然后返回指向该位置的指针 char *strrchr(const char *string ,int c);

     Example:

      char *string="I'm a young soul in this very strange world.";

      char *first_a,*last_a;

 

      first_a=(char *)strchr(string,'a');

      lr_output_message("first occurrence of a:%s",first_a);

       //first occurrence of a:a young soul in this very strange world.

      last_a=(char *)strrchr(string,'a');

      lr_output_message("The last occurrence of a:%s",last_a);

      //The last occurrence of a:ange world.

2.strcpystrncpy

  Strcpy把一个字符串复制到另一个字符串中;strncpy是把一个字符串的指定长度字符复制到另一个字符串中。

  Char *strcpy(char *dest,const char *source);

  Char *strncpy(char *dest,const char *source,size_t n);

  Example:

    char test[50];

    char ntest[50];

    strcpy(test,"Copies one string to another.");

    lr_output_message("test=%s",test);

    //test=Copies one string to another.

    strncpy(ntest,"Copies the first n characters of one string to another?",30);

    lr_output_message("ntest=%s",ntest);

    //ntest=Copies the first n characters

3.strcmpstricmp

  用与按照字母表顺序比较2个字符串的大小;前者比较时区分字符串大小写;后者比较时不区分字符串大小写

  Int strcmp(const char *string1,const char *string2);

  Int stricmp(const char *string1,const char *string2)

  Example:

    char *string1="This ABCDEFG";

    char *string2="This abcdefg";

    int result;

    result=strcmp(string1,string2);

    lr_output_message("strcmp result=%d",result);

    //strcmp result=-1

 

    result=stricmp(string1,string2);

    lr_output_message("stricmp result=%d",result);

    //stricmp result=0

4.strcatstrncat

  Strcat是把一个字符串复制到另一个字符串的后面,strncat是把一个字符串的指定长度字符串复制到另一个字符串的后面。

5.sprintf

  Sprintf是把一个字符串格式化后输入到另一个字符串中,然后返回写入的字符数量。

  Int sprintf(char *string,const char *format_string[,args]);

  String 是要写入的目标字符串,format_string是格式化的字符串,args是一系列变量表达式

  Example:

     char test[30];

     int a=2,b=3;

     int i=0;

     i=sprintf(test,"Add Test:a=%d,b=%d,a+b=%d",a,b,a+b);

     lr_output_message(test);

      //Add Test:a=2,b=3,a+b=5

     lr_output_message("i=%d",i);

      //i=22写入test的字符数量

5.strlwrstrupr

  Strlwr把字符串全部变成小写,strupr把字符串全部变成大写。

  Char *strlwr(char *string); char *strupr(char *string);

  Example:

   char str[]="This is A tEst";

    lr_output_message("lowstr=%s",(char *)strlwr(str));

    //lowstr=this is a test

       lr_output_message("uprstr=%s",(char *)strupr(str));

    //uprstr=THIS IS A TEST

6.atoiitoa

  Atoi是把一个字符串转为整数:int atoi(const char *string);

  string字符串转换成整数:i=atoi(“123fkdjas”);

  Itoa是把整数转化成字符串:int itoa(int value,char *string,int redix);

  把数字value转换成字符串放在string里,redix是转换时的进制。

  Itoa(131231,string,10);

7.strlen

  用于返回指定字符串的字符个数。Size_t strlen(const char *string);

  len=strlen("This is a test");

8.memcpy:

  用于在内存缓存区复制数据,可以复制二进制的数据,而前面的strcpy只能复制字符串,不能复制中间存在/0的数据。

  语法结构:

  void    memcpy(void *dest,const void *src,size_t n);

  dest是目标缓存区,src是将要复制的源缓存区,n是要复制的长度

  example:

   char src[]="AAAAA /0 This is test./0";

   char memcpy_str[60];

   char strncpy_str[60];

 

   memcpy(memcpy_str,src,60);

   strncpy(strncpy_str,src,60);

 

   lr_output_message("memcpy_str=%s",memcpy_str);

   //memcpy_str=AAAAA 因为/0是字符串结束符,所以只输出了/0前面的字符

   lr_output_message("strncpy_str=%s",strncpy_str);

   //memcpy_str=AAAAA

   lr_output_message("memcpy_str:%s",memcpy_str+8);

   //memcpy_str:This is test.首位偏移8位后输出This is test

   lr_output_message("strncpy_str:%s",strncpy_str+8);

   //首位偏移后不输出任何东西

9.memset

  函数通常用来对数据对象做初始化工作,void *memset(void *buffer,int c,size_t n);

 调用memset函数后,会把buffer指向的某一块内存中的每个字节的内容全部设置为参数c所指定的ASCII值或指定字符对应的ASCII值,块的大小由第三个参数n来指定。

10.sizeof:

  用来返回指定表达式、变量或者指定数据类型在内存中所占用的字节数:

   sizeof(类型说明符、表达式或者数组) 或者sizeof 变量

   char test[10];

  struct str_test{

         char str[10];

         int i;

  };

  struct str_test mystr;

  lr_output_message("/"abcde/"size=%d",sizeof "abcde" ); //"abcde"size=6

  lr_output_message("12345 size=%d",sizeof(12345));//12345 size=4

  lr_output_message("test size=%d",sizeof test);//test size=10

  lr_output_message("mystr size=%d",sizeof(mystr));//mystr size=16