C/C++字符串使用整理

  1. 基础函数输入输出:cin,cout,getchar,gets,putchar,puts,printf,scanf
  2. 格式化:sprintf,sprintf_s,wsprintf,wsprintf_s,swprintf,swprintf_s  (请仔细比较这几组函数的区别)
  3. 格式化值:%% -返回百分号
  4. %b –返回二进制数
  5. %c –返回与ASCII值相对应的字符
  6. %d –带有正负号的十进制数
  7. %e –科学计数符号(如:1.2e+2)
  8. %u –不带正负号的十进制数.%ul 不带符号的长整型
  9. %f – 浮点数据(本地设置)
  10. %F –浮点数据(非本地设置)
  11. %o –八进制数
  12. %s –字符串
  13. %x –十六进制数(小写字母) 例如:sprintf(s, "%#010x", 128); //产生"0x00000080"
  14. %X –十六进制数(大写字母)
  15. 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(将字符串转换成无符号长整型数)

字符判断:

isalnum:Check if character is alphanumeric (function)

isalpha :Check if character is alphabetic (function)

iscntrl :Check if character is a control character (function)

isdigit :Check if character is decimal digit (function)

isgraph :Check if character has graphical representation (function )

islower :Check if character is lowercase letter (function)

isprint :Check if character is printable (function)

ispunct :Check if character is a punctuation character (function)

isspace :Check if character is a white-space (function )--空白字符:新行符\n, 空格,回车''\r",水平制表符"\t", 垂直制表符"\v"

isupper :Check if character is uppercase letter (function)

isxdigit :Check if character is hexadecimal digit (function)

tolower:Convert uppercase letter to lowercase (function)

toupper:Convert lowercase letter to uppercase (function)

内存操作:

void * memcpy(void * s1, const void * s2, size_t n) ; 将s2中连续n个字节的数据拷贝到s1中 ,注意s1和s2内存区域不能重叠

void * memmve(void * s1, const void * s2, size_t n) ; 将s2中连续n个字节的数据拷贝到s1中 ,但s1和s2内存区域可以重叠

int memcmp(const void * s1, const void * s2, size_t n) ; 比较内存区域s1和s2的前n个字节,<、=、>分别返回负值、0、正值。

void * memchr(const void * s, int c, size_t n) ; 返回指向s1对象的前n个字节查找出现c的位置的指针,没有返回NULL

void * memset(void * s, int c, size_t n) ; 将c拷贝到s1中的前n个字节中,常用于字符串初始化,初始化也可以写char *str={0}

格式转换:

char*到string:可以直接赋值

string转char*:str.c_str()

char*和wchar_t*互转:比较复杂,综合运用多种函数,总之微软的不标准的东西用着就是不爽,

 

 

 

 

原文:https://blog.csdn.net/janly/article/details/80005908

 

你可能感兴趣的:(C/C++字符串使用整理)