撸代码时候字符串和数组是我们最常见的数据类型,要熟练使用c语言编程,字符串操作也要相当的熟练,这里介绍一些常见的字符串操作方法,不够完整,如果用到其他的方法可以查询 c语言字符串函数API
strchr :
功能:查找字符串s中首次出现字符c的位置
说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。
void main(){
char *str = "this is string";
//查询i元素
char *p =strchr(str,'i');
if(p){
printf("索引位置 %d\n",p);
}else{
printf("没有找到");
}
getchar();
}
strstr:
功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。
说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。
与strchr有点类似,一个是找字符,一个是找字符串。
void main(){
char * str= "welcome to beijing";
char * needle = "to";
char *p;
p= strstr(str,needle);
if(p){
printf("索引位置 %d\n",p);
}else{
printf("没有找到");
}
getchar();
}
strcmp:
功能:比较字符串s1和s2。忽略大小写
说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
void main(){
char *str1 = "abcd";
char *str2 = "ABCD";
int result = strcmp(str1,str2);
if(result<0){
printf("str1 小于 str2");
}else if(result == 0){
printf("str1 等于 str2");
}else{
printf("str1 大于 str2");
}
getchar();
}
strupr:
功能:将字符串s转换为大写形式
说明:只转换s中出现的小写字母,不改变其它字符。返回指向s的指针。
void mystrlwr(char str[],int len){
int i =0;
for(;i<len;i++){
//在A-Z字母转为小写只需+32('a'-'A')
if(str[i]>='A'&&str[i]<='a'){
str[i] = str[i] - 'A' + 'a';
}
}
}
void main(){
char * str= "this is string";
char * p = strupr(str);
printf("转为大写:%s\n",p);
//转小写strlwr
mystrlwr()
getchar();
}
strtod
功能:将字符串s转换为double
说明:strtod(str,p)从字符串 str中转换 double 类型数值,并将后续的字符串指针存储到 p 指向的 char* 类型存储。
void main(){
char *str= "99ab77";
char *p;
double value;
value = strtod(str,&p);
printf("value = %l\n",value);
printf("p地址 %#x\n",p);
getchar();
}
strrev:
功能:把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)。
说明:返回指向颠倒顺序后的字符串指针。
void main(){
char *str ="this is string";
char *p;
p = strrev(str);
print("%s\n",p);
getchar();
}
strset:
功能:把字符串s中的所有字符都设置成字符c。
说明:返回指向s的指针。
void main()
{
char *s="Golden Global View";
strset(s,'G');
printf("%s",s);
getchar();
}
strpbrk
功能:在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,空字符NULL不包括在内。
说明:返回指向s1中第一个相匹配的字符的指针,如果没有匹配字符则返回空指针NULL。
void main()
{
char *s1="Welcome To Beijing";
char *s2="BIT";
char *p;
p=strpbrk(s1,s2);
if(p){
printf("%s\n",p);
}
else{
printf("Not Found!\n");
}
p=strpbrk(s1, "Da");
if(p){
printf("%s",p);
}
else{
printf("Not Found!");
}
getchar();
}
字符串API方法还有很多,不一一列举,查询string api进行练习,熟悉了这么多,写一个实例:删除字符串中指定的字符
//删除字符串中指定的字符
void delchr(char *str,char del){
char *p = str;
while(*str!='\0'){
if(*str!=del){
*p++ = *str;
}
str++;
}
*p='\0';
}
void main(){
char *str="this is string";
printf("%s\n",str);
delchr(str,'r');
printf("%s\n",str);
getchar
}