{
char *original=string;
char *ptr=NULL;
while(*string)
{
if(*string==letter)
ptr=string;
string++
}
return((*ptr)?ptr-original:string-original);//要么返回末次出现的索引,要么返回字符串的长度
}
charcnt函数 作用是计算字符串中字符出现的次数
int charcnt(const char *string,char letter)
{
int count=0;
while(*string)
if(*string==letter)
count++;
return(count);
}
strrev函数 作用是将字符串内容反转
char *strrev(char *string)
{
char *original=string;
char *forward=string;
char tmp;
while(*string)
string++;
while(forward<string)//逻辑和交换两个数差不多
{
temp=*(--string);
*string=*forward;
*forward++=tmp;
}
return(original);
}
strset函数 作用是将某特定字符赋给字符串 相当于用某一个字符重置字符串 不是很难的函数 :)
strcmp函数 作用是比较两个字符串 相同返回0,第一个大返回-1 ,第二个大返回1
int strcmp(const char *s1, const char *s2)
{
while((*s1==*s2)&&(*s1))//这个比较的方式很简练吧,也很有逻辑
{
s1++;
s2++;
}
if((*s1==*s2)&&(!*s1))
return(0);
else if((*s1)&&(!*s2))
return(-1);
else if((!*s1)&&(*s2))
return(1);
else
return((*s1>*s2)?-1:1);
}
strncmp函数 作用是比较两个字符串的前N个字符 实现和上面的函数很类似 只是要添加一个控制变量控制下长度 : )
strdup函数 作用是复制字符串的内容
strdup(const char *s1)
{
char *ptr;
if((ptr=malloc(strlen(s1)+1)))
strcpy(ptr,s1);
return(ptr);
}
strspn函数 作用是从给定字符序列中查找字符的首次出现
size_t strspn(const char *s1, const char *s2)//这个函数我看了很久才明白是什么意思,比如第一个参数传abcDef,第二个传cbA, //按照顺序查找第一个字符串,可以找到第一个没有在第二个字符串中出现的字符是'D'
//返回这个字符在第一个字符串中的索引,也就是3,另外,为什么不用int而用size_t做
//返回值,是因为site_t是unsigned int,也就是正数
{
int i,j;
for(i=0;*s1;i++,s1++)
{
for(j=0; s2[j]; j++)
if(*s1==s2[j])
break;
if(s2[j]==NULL)
break;
}
return(i);
}
strstr函数 作用是在字符串中查找子字符串 虽然返回值是char* 但是这个函数应该在判断有没有找到子字符串情况下用的多些
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29798-2.html
应该拒绝赔偿才对
肯定质量杠杠的