C中常见字符串函数
#include <cstring> 或 #include <string.h>
1)字符串操作
strcpy(p, p1) 复制字符串
微软在2005后建议用一系统所谓安全的函数,为溢出有错误提示。像strcpy_s,strcat_s
strcpy_s(destination,sizeof(destination)/sizeof(destination[0]),source);
char string[20]="123";
strcat_s(string,sizeof(string),"456");
strncpy(p, p1, n) 复制指定长度字符串 (注意:如果要复制的*source的部分有\0,就把\0复制进去,之后就提前结束,即使没复制到第 n 个字符也是)
strcat(p, p1) 附加字符串
strncat(p, p1, n) 附加指定长度字符串
strlen(p) 取字符串长度
strcmp(p, p1) 比较字符串
strcasecmp忽略大小写比较字符串,此函数只在Linux中提供,相当于windows平台的 stricmp,VC6.0该函数有错。VC6.0要用_stricmp(p,p1)或stricmp()或strcmpi()不区分大小写比较字符串。
strncmp(p, p1, n) 比较指定长度字符串
char* strchr(const char* p, int c) 在字符串中查找指定字符c,找到返回指向他的指针,否则返回NULL
char* strrchr(const char* p, int c) 在字符串中反向查找
char* strstr(const char* p, const char* p1) 在字符串p中查找第一次出现字符串q的位置,返回指向他的指针,否则返回NULL
char* strpbrk(const char* p, const char* p1) 在p指向的字符串中查找第一次出现p1指向的字符串中任何字符的位置。成功返回p中指向该字符的指针,失败返回NULL。
size_t strspn(const char* p, const char* p1) 在p指向的字符串中查找第一个与p1指向的字符串中所有字符都不相同的字符下标。返回该字符下标,否则返回'\0'的下标值(即字符串长度)。
size_t strcspn(const char* p, const char* p1) 在p指向的字符串中查找第一个与p1指向的字符串中某一字符相同的字符下标。找到返回该字符的下标值,没找到返回'\0'的下标值(即字符串长度)。
* 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符
2)字符串到数值类型的转换
strtod(p, ppend) 从字符串 p 中转换 double 类型数值,并将后续的字符串指针存储到 ppend 指向的 char* 类型存储。
strtol(p, ppend, base) 从字符串 p 中转换 long 类型整型数值,base 显式设置转换的整型进制,设置为 0 以根据特定格式判断所用进制,0x, 0X 前缀以解释为十六进制格式整型,0 前缀以解释为八进制格式整型
atoi(p) 字符串转换到 int 整型
atof(p) 字符串转换到 double 符点数
atol(p) 字符串转换到 long 整型
3)字符检查 头文件#include <ctype.h> 或#include <cctype>
isalpha() 检查是否为字母字符
isupper() 检查是否为大写字母字符
islower() 检查是否为小写字母字符
isdigit() 检查是否为数字
isxdigit() 检查是否为十六进制数字表示的有效字符
isspace() 检查是否为空格类型字符
iscntrl() 检查是否为控制字符
ispunct() 检查是否为标点符号
isalnum() 检查是否为字母和数字
isprint() 检查是否是可打印字符
isgraph() 检查是否是图形字符,等效于 isalnum() | ispunct()
int tolower(int c)将一个大写字母转换为与之对应的小写字母。
int toupper(int c)将一个小写字母转换为与之对应的大写字母。
常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。
昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。