C++字符串处理函数总结

Posted stephen-jixing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++字符串处理函数总结相关的知识,希望对你有一定的参考价值。

 

1.基础函数
输入输出:cin,cout,getchar,gets,putchar,puts,printf,scanf
格式化:sprintf,sprintf_s,wsprintf,wsprintf_s,swprintf,swprintf_s  (请仔细比较这几组函数的区别)
格式化值:
%% -返回百分号
%b –返回二进制数
%c –返回与ASCII值相对应的字符
%d –带有正负号的十进制数
%e –科学计数符号(如:1.2e+2)
%u –不带正负号的十进制数.%ul 不带符号的长整型
%f – 浮点数据(本地设置)
%F –浮点数据(非本地设置)
%o –八进制数
%s –字符串
%x –十六进制数(小写字母) 例如:sprintf(s, "%#010x", 128); //产生"0x00000080"
%X –十六进制数(大写字母)
char*字符串处理:strlen,strcpy,strcat,strcmp


2.进阶函数
char*字符串处理:
char * strchar(const char * s, int c) ;返回指向字符串s中字符c首次出现的指针,没有返回NULL
char * strrchar(const char * s, int c) ;返回指向字符串s中字符c最后一次出现的指针,没有返回NULL 
char * strstr(const char * s1, const char * s2) ;返回指向字符串s1中首次出现s2位置的指针,无返回NULL
size_t strspn(const char * s1, const char * s2) ;返回s1中只包含s2中字符的起始段的长度
size_t strcspn(const char * s1, const char * s2) ;返回s1中不包含s2中字符的起始段的长度
char * strpbrk(const char * s1, const char * s2) ;返回指向s1中首次出现s2中字符位置的指针,没有返回NULL
char * strtok(char * s1, const char * s2) 将s1用s2中包含的字符分开记号拆散为字符串。(注意:strtok会修改输入的字符串,故请拷贝后再调用。)
char *strsep(char **stringp, const char *delim) 同上,分隔字符串,用法类似


string字符串处理:
长度:str.length()
尺寸:str.size()
比较:str1.compare(str2)
连接:str1+=str2
连接:str1.append(str2)
提取:str2=str2.substr(pos1)
查找:pos=str1.find(str2)
插入:str1.insert(pos1,str2);
替换:str1.replace(pos1,str2);
删除:str1.erase(pos,len)
清除:str.clear()


字符串转数字:
atoi(将字符串转换成整型数)
atof(将字符串转换成浮点型数) 
atol(将字符串转换成长整型数)
strtod(将字符串转换成双精度浮点数)
strtol(将字符串转换成长整型数)
strtoul(将字符串转换成无符号长整型数) 
















































以上是关于C++字符串处理函数总结的主要内容,如果未能解决你的问题,请参考以下文章

C++中如何获取参数的值以及对字符串进行处理

stringstream操纵string小总结

c++字符处理判断是否为数字字母,大小写转换

C++ 中的 Unicode 字符串处理

皮皮君的C++第十周总结

在 C++ 中处理字符串时如何使用 memset? [关闭]