字符串的常用函数,字符串函数有哪些,以及怎么用
永远的神干货盘点
@TOC
一。字符长度(字符串长度)函数
计算字符串长度
但应注意使用string.h头文件
字符长度(字符串长度)函数返回值为无符号整数
#包含标准视频
#包含字符串。h
int main()
if(strlen( ABC )-strlen( abcdef )0)
printf( \ n );
其他
printf( \ n);
返回0;
}
如果我们正常来看strlen( abc ) - 3 strlen( abcdef) - 6
3-6应为-3 但是-3为无符号数所以应该输出-3的补码
即一个很大的数为
2.模拟实现字符长度(字符串长度)函数
#包含标准视频
#include assert.h
int mystrlen(const char * str)//const在*左边代表指针指向的内容不能被改变,指针本身可以改变
断言(str!=NULL);
int sum=0;
while(*str!=\0)
总和;
潜艇用热中子反应堆(submarine thermal reactor的缩写)
返回总和;
int main()
char arr[]= hello ;
int ret=mystrlen(arr);
printf(%d\n ,ret);//5
返回0;
}
二。拷贝字符串函数
拷贝函数
将arr2拷贝到arr1中
使用头文件string.h
但是必须保证arr1能够放下arr2
需要注意的是拷贝时将\0也会拷贝过去
#包含标准视频
#包含字符串。h
int main()
char arr 1[20]= XXXXXXXX ;
char arr 2[]= hello ;
strcpy(arr1,arr 2);
printf(%s\n ,arr 1);//你好
返回0;
}
2.模拟实现拷贝字符串函数
#包含标准视频
# inlcude assert.h
char* mystrcpy(char*dest,const char*src)//这里的科学研究委员会为要传递arr2,不能改变科学研究委员会指针本身
asser(src!=NULL dest!=NULL);
char * ret=dest
while(*dest=*src)
返回浸水使柔软
int main()
char arr 1[20]= XXXXXXXX ;
char arr 2[]= hello ;
mystrcpy(arr1,arr 2);
返回0;
}
三。字符串连接函数函数
字符串追加
但是必须保证arr1数组足够大
#包含标准视频
#包含字符串。h
int main()
char arr 1[20]= hello ;
char arr 2[]= world ;
strcat(arr1,arr 2);
printf( % s \ n arr 1);//你好,世界
返回0;
}
2.模拟实现字符串连接函数函数
#包含标准视频
#include assert.h
char* strcat(char*dest,const char*src)//srcu所指向的内容不可以改变指针本身可以改变
断言(dest src);
char * ret=dest
while(*dest!=\0)
建筑环境及HVAC系统模拟的软件平台
while(*src!=\0)
* dest=* src//如果建筑环境及(同high-voltagealternatingcurrent)高压交互电流系统模拟的软件平台加上常数此句就会报错
建筑环境及HVAC系统模拟的软件平台
科学研究委员会
返回浸水使柔软
int main()
char arr 1[20]= hello ;
char arr 2[]= world ;
char*ret=mystrcat(arr1,arr 2);
printf(%s\n,Rett);//你好世界
返回0;
}
四。串比较函数
比较两个字符串的大小
必须使用头文件string.h
#包含标准视频
#包含字符串。h
int main()
char arr 1[]= abbb ;
char arr 2[]= abq ;
if(srcmp(arr,arr2) 0)//abbb abq
printf( \ n);
其他
printf( \ n);
返回0;
}
使用方法:从首字符开始如果两者相等则继续向下
若在某个字符第一个字符大于第二个字符则数组一数组2
若在某个字符第一个字符小于第二个字符则数组一数组2
例:
辅导教材
阿尔伯克基
百安居所以abbb abq
2.模拟实现串比较函数
#包含标准视频
# include断言。h//常量和维护断言都可不加加上是为了代码的健壮
int mystrcmp(常量char*s1,常量char*s2)
断言(S1S2);
while(*s1==*s2)
if(*s2==\0 )
返回0;
S1;
S2;
如果(*s1 *s2)
返回1;
其他
return-1;
int main()
char arr 1[]= abbb ;
char arr 2[]= abq ;
int ret=mystrcmp(arr1,arr 2);
printf(%d\n ,ret);//-1
返回0;
五。字符串查找函数
字符串查找函数是在一个字符串中寻找另一个字符串
必循使用string.h头文件
#包含标准视频
#包含字符串。h
int main()
char arr 1[]= abcdefabcdef ;
char arr 2[]= BCD ;
char*p=strstr(arr1,arr 2);
if(p==NULL)
printf(没找到\ n’);
其他
printf(找到了:%s\n ,p);//bcdefabcdef
返回0;
如果没找到返回空
如果找到了返回第一次出现的位置
2.模拟实现字符串查找函数
#包含标准视频
#include assert.h
char*mystrstr(const char*str1,const char*str2)
常量char * s1=str1
常量char * s2=str2
常量char * cp=str1
if(*s2===\0 )
return(char *)str 1;//str1也为常数修饰的所以需要强制类型转换
while(*cp)
s1=cp
s2=str2
while(*s1 *s2 (*s1==*s2))//为了防止两者相同的情况发生
S1;
S2;
if(*s2==\0 )
return(* CP);//cp为常数修饰的想要返回字符*要强制类型转换
CP;
返回空
int main()
char arr 1[]= abbcdef ;
char arr 2[]= BBC ;
char*p=mystrtsr(arr1,arr 2);
if(p==NULL)
Printf(未找到\ n );
其他
Printf(找到:%s ,p);//bbcdef
返回0;
}
不及物动词strtok函数
楼梯斜梁
第一个参数是字符串本身,第二个参数是分隔符集。
您必须使用string.h头文件。
#包含stdio.h
#包含字符串. h
int main()
char arr[]= 2637 @ QQ . com ;
const char* p=@ . ;
char tmp[20]={ 0 };//strtok通常会剪切字符串,所以使用临时复制。
strcpy(tmp,arr);
char * ret=NULL
ret=strtok(tmp,p);//第一次传递字符串本身会将第一个分隔符改为 \0 ,并返回起始位置的地址。
printf(%s\n ,ret);
ret=strtok(NULL,p);//为NULL时,从最后一个分隔符开始,直到分隔符再次变为“\0”。
printf(%s\n ,ret);
ret=strtok(NULL,p);
printf(%s\n ,ret);
返回0;
}
结果是2637 qq com。
。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。