zoukankan      html  css  js  c++  java
  • 常用C语言字符串操作函数

    char* strcpy(char *dest,const char *src)    将字符串src复制到dest
    char* strcat(char *dest,const char *src)    将字符串src添加到dest末尾
    char* strchr(const char *s,int c)    检索并返回c在s中第一次出现的位置的指针,没有则返回NULL
    int strcmp(const char *s1,const char *s2)    比较字符串s1与s2的大小,并返回s1-s2
    size_t strcspn(const char *s1,const char *s2)   在字符串s1中搜寻s2中所出现的第一个字符,返回这个字符在S1中第一次出现的位置
    char* strdup(const char *s)    将字符串s复制到最近建立的单元
    int stricmp(const char *s1,const char *s2)    比较字符串s1和s2,但不区分字母的大小写
    size_t strlen(const char *s)    返回字符串s的长度
    char* strlwr(char *s)    将字符串s中的大写字母全部转换成小写字母,并返回转换后的字符
    char* strncat(char *dest,const char *src,size_t maxlen)    将字符串src中最多maxlen个字符复制到字符串dest中
    int strncmp(const char *s1,const char *s2,size_t maxlen)    比较字符串s1与s2中的前maxlen个字符
    char* strncpy(char *dest,const char *src,size_t maxlen)    复制src中的前maxlen个字符到dest中
    int strnicmp(const char *s1,const char *s2,size_t maxlen)    比较字符串s1与s2中的前maxlen个字符,但不区分字母的大小写
    char* strnset(char *s,int ch,size_t n)    将字符串s的前n个字符设置为ch字符
    char strpbrk(const char *s1,const char *s2)    在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,空字符NULL不包括在内
    char* strrchr(const char *s,int c)    查找字符在指定字符串中从后面开始的第一次出现的位置
    char* strrev(char *s)    将字符串s中的字符全部颠倒顺序重新排列,并返回排列后的字符
    char* strset(char *s,int ch)    将一个字符串s中的所有字符设置为给定的字符ch
    size_t strspn(const char *s1,const char *s2)   从参数s 字符串的开头计算连续的字符,而这些字符都完全是accept 所指字符串中的字符。简单的说,若strspn()返回的数值为n,则代表字符串s 开头连续有n 个字符都是属于字符串accept内的字符
    char* strstr(const char *s1,const char *s2)    扫描字符串s1,返回指向第一次出现s2位置的指针,如果没找到则返回NULL。
    char* strtok(char *s1,const char *s2)    检索字符串s1,该字符串s1是由字符串s2中定义的定界符所分隔
    char* strupr(char *s)    将字符串s中的小写字母全部转换成大写字母,并返回转换后的字符

    int_vsnprintf(char*str,size_tsize,constchar*format,va_listap);
    头文件:
    #include <stdarg.h>
    函数声明:
    int_vsnprintf(char*str,size_tsize,constchar*format,va_listap);
    参数说明:
    1. char *str [out],把生成的格式化的字符串存放在这里.
    2. size_t size [in], str可接受的最大字节数,防止产生数组越界.
    3. const char *format [in], 指定输出格式的字符串,它决定了你需要提供的可变参数的类型、个数和顺序。
    4. va_list ap [in], va_list变量. va:variable-argument:可变参数
    函数功能:将可变参数格式化输出到一个字符数组。
    用法类似于vsprintf,不过加了size的限制,防止了内存溢出(size为str所指的存储空间的大小)。
    返回值:执行成功,返回写入到字符数组str中的字符个数(不包含终止符),最大不超过size;执行失败,返回负值,并置errno.[1] 
    备注:
    linux环境下是:vsnprintf[2] 
    VC6环境下是:_vsnprintf

    int _snprintf_s(   char *buffer,   size_t sizeOfBuffer,   size_t count,   const char *format [, argument] ... );
    int _snprintf_s_l(   char *buffer,   size_t sizeOfBuffer,   size_t count,   const char *format,   locale_t locale [,   argument] ... );
    int _snwprintf_s(   wchar_t *buffer,   size_t sizeOfBuffer,   size_t count,   const wchar_t *format [,  argument] ... );
    int _snwprintf_s_l(   wchar_t *buffer,   size_t sizeOfBuffer,   size_t count,  const wchar_t *format,  locale_t locale [,   argument] ... );
    template <size_t size>
    int _snprintf_s(   char (&buffer)[size],   size_t count,   const char *format [,   argument] ... ); // C++ only
    template <size_t size>
    int _snwprintf_s(   wchar_t (&buffer)[size],   size_t count,   const wchar_t *format [,  argument] ... ); // C++ only 

    _snprintf_s 返回存储在 buffer 中的字符,不包括终止 null 字符。 _snwprintf_s 返回存储在 buffer 中的宽字符数,不包括中止 null 宽字符。

    int sprintf_s(
    char *buffer,
    size_t sizeOfBuffer,
    const char *format [,
    argument] ... );
    int _snprintf(
    char *buffer,
    size_t count,
    const char *format [,
    argument] ... );

    ASCII 宽字元 常规
    参数的变数个数       
    标准版 sprintf swprintf _stprintf
    最大长度版 _snprintf _snwprintf _sntprintf
    Windows版 wsprintfA wsprintfW wsprintf 


    参数阵列的指标       
    标准版 vsprintf vswprintf _vstprintf
    最大长度版 _vsnprintf _vsnwprintf _vsntprintf
    Windows版 wvsprintfA wvsprintfW wvsprintf

    在宽字元版的sprintf函式中,将字串缓冲区定义为宽字串。在宽字元版的所有这些函式中,格式字串必须是宽字串。不过,您必须确保传递给这些函式的其他字串也必须由宽字元组成。

    函数前面多个_:表示是c语言的库函数

    函数前面多个s:表示多加了对于缓存的一些保护判断

    函数后面多个_s:表示多加了对于缓存的一些保护判断

    函数后面多个n:表示多加了对于缓存的一些保护判断  eg:_snprintf

  • 相关阅读:
    接口测试01
    mysql主从
    linux下配置JDK
    linux常用命令
    mysql基本语句
    线程与进程
    loadrunner函数
    设计模式-模板方法模式
    设计原则-CRP合成复用原则
    设计原则-LOD迪米特法则
  • 原文地址:https://www.cnblogs.com/For-her/p/3890059.html
Copyright © 2011-2022 走看看