修改(字符串)

0x01 操作与库函数

​ 对于字符串的操作函数按字符串类型可以分为两类:多字节字符串、宽字节字符串。

多字节字符串:在原本的 ASCLL 字符集上发展而来,英文字符一个字节,中文两个字节
宽字节字符串:Unicode 字符集,所有字符均为宽字节,如:UTF-16、

​ 程序为这两种字符串提供三套 API ,对于多字节类型字符串,可以使用 strxxx 的函数;对于宽字节类型字符串,可以使用 wcsxxx 的函数。

​ 还有一种 API 根据项目预先设定的字符串类型,自动转换为相对应的函数,函数一般名为_tcsxxx ,该类型需要我们导入头文件 #include <tchar.h>,且推荐使用这种函数。

项目预先设置的字符集类型可以影响使用 TCHAR 定义的字符串类型,不影响使用 charwchar_t 定义的字符串。

操作函数:

//输出
//char 类型
printf("%s",a); 
//wchar_t 类型
printf("%ws",a);
//TCHAR 类型
_tprintf(_T"%s",a); 

//以下类型都有三种 strxxx、wcsxxx、_tcsxxx,所以只以 strxxx 为代表
//长度
strlen(a);  

//复制
strcpy(destin,text);		//不安全的函数,有溢出风险
strcpy_s(destin,sizeof(destin),text);  //安全的复制函数,检测字符串长度		
strncpy(destin,text,size)	//复制指定个数字符(size 个)

//比较
strcmp(str1,str2);				//比较两字符串,相等为0,str1大于str2为正数,反之为负数
strncmp(str1,str2,size);		//比较前 size 个字符,返回值如上
stricmp(str1,str2);				//比较两个字符串,忽略大小写,返回值如上
strnicmp(str1,str2,size);		//比较前 size 个字符,忽略大小写,返回值如上 

//字符串拼接

strcat(str1,str2);				//不安全的拼接函数
strcat_s(str1,sizeof(str1),str2);//安全的拼接函数

//查找字符位置
char *p = strchr(str1,char1);	//从左开始查询,返回从找到位置到结尾的字符串,未找到返回 NULL
char *p = strrchr(str1,char1);	//从右开始查询,返回规则同上

//查找字符串位置
char *p = strstr(str1,str2);	//从左开始查询字符串,返回规则同上

//拆分字符串
const char *tip = "sign"		//此处为分隔符,可以为多种如:"_.!"
char *p = strtok(str1,tip);		//非安全函数,此处返回被分解的第一个的字符串,若无可分解,返回NULL
/*
*函数内会自动存储分割后剩余的,可以使用循环继续分割,且字符为 NULL 即可
*while(p!=NULL){
*	p=strtok(NULL,tip);			此处不用继续输入str1
*}
*/
strtok_s(str1,tip,&addr);		//安全的拆分函数,增加一个变量记录字符串处理位置,其它同上。

//转换

上一篇:最长公共子串


下一篇:程序中+号的使用