字符串操作常用函数

几种常用的API

输出字符串

puts()
printf("%s",p)'

获取字符串

gets() //内存是否合法
scanf("%s",p)

计算长度

strlen

初始化

memset	//memset( params初始化对象, 初始化成什么字符, 多大)

拷贝

strcpy	//strcpy(目标,复制对象)
strncpy //拷贝的最大长度  strncpy(目标,复制对象,长度)

拼接

strcat //strcat(一个字符串,需要拼接的另一个字符串)

比较

strcmp	//strcmp(需比较的一个字符串,另一个字符串)  一样则为0
int main()
{
    
    
	char *str = "Leoishandsome";
	char c = 'i';
	
	char *p = NULL;
	p = strchr(str, c);
	if (p == NULL)
		printf("没有找到");
	else
		puts(p);
	
	return 0;
	}

查找

strchr	//strchr(要被检索的字符串, 要搜索的字符)

字符串分割

strstr	//strstr(要被检索的字符串, 要搜索的字符)
strtok	//做字符串分割,strtok(需要分割的字符串,需要分割的类型)
char str[] = "hello,world,leo,heyheyhey";
p = strtok(str,",");
if (p != NULL){
    
    
	printf("获取到第一个串p=%s\n",p);
	}
//获取第二个串需要加个NULL
p = strtok(NULL,",");
printf("获取到第二个串p=%s\n",p);

/*获取后面几个串都需要不断添加p = strtok)=(NULL,",");*/

//改进
int i=1;
while()
{
    
    
	p = strtok(NULL,",");
	if (p != NULL)
	{
    
    
		printf("获取到第%d个字符串p = %s\n",i,p);
	}
	else{
    
    
		printf("没有字符串");
		break;
		}
	i++;
}
		

转为小写的函数

strlwr	//strlwr(目标字符串)
char str[] = "Hello World";		//windows环境下要定义成数组的形态,否则崩溃,Linux下是可以的 
purts(strlwr(str));

转为大写的函数

strupr

代码例子

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    
    
	char *str = "Leo是个大帅哥哎";
	puts(str); //puts()函数里面自带一个换行符'\n',可自动换行
	printf("%s\n",str); //printf()则需要自己写一个'\n'

	char *pstr //野指针,造成非法内存访问,会出现段错误, cmd闪退
	pstr = (char *)malloc(128) /* 1.申请了空间 2.一旦用了malloc,一定要注意内存泄漏问题 3.malloc可能会失败,要对返回值进行判断*/
	if (pstr == NULL){
    
    
		printf("申请内存失败");
		eixt(-1);
		}
	memset(pstr, '\0', 128) //初始化,把每个元素都初始化为;\0'
	//memset( params初始化对象, 初始化成什么字符, 多大)

猜你喜欢

转载自blog.csdn.net/zouchengzhi1021/article/details/111684192