常用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

posted @ 2014-08-04 14:15  Zucc_zt  阅读(416)  评论(0编辑  收藏  举报