常用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);
int_vsnprintf(char*str,size_tsize,constchar*format,va_listap);
-
char *str [out],把生成的格式化的字符串存放在这里.
-
size_t size [in], str可接受的最大字节数,防止产生数组越界.
-
const char *format [in], 指定输出格式的字符串,它决定了你需要提供的可变参数的类型、个数和顺序。
-
va_list ap [in], va_list变量. va:variable-argument:可变参数
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