1.strcpy
char * my_strcpy(char *dest,const char *src){
char *temp=dest;
while(*temp++=*src++);
return (temp-1);
}
2.strcat
char *mystrcat(char *target,const char * source)
{
while(*target)//这里可以看出指针和数组下标的不同,一直都觉得指针式很有优势的
target++;
while(*target++=*source++);
return(target);
}
int main()
{
char a[100]="hello world ";
char *b="chenmiaohong";
mystrcat(a,b);
printf("%s\n",a);
}
3.strnct
char *strcat(char *destination ,const char * source,int n)
{
char *original=destination;
int i=0;
while(*destination )
destination ++;
while((i++<n)&&(*destination ++=*source++));//我忍不住再一次赞叹一下这个循环语句
//这个容错性的想到也很牛,只要n为负数,就将目标字符串改为空
if(i>n)
*destination=NULL;
return(original);
}
/str_index函数 作用是返回索引到串的首次出现/
int str_index(const char *string,char letter)
{
char *origion=string;
while((*string!=letter)&&(*string))
string++;
return (string-origion+1);
}
int main()
{
char *s="hello world";
int a;
a=str_index(s,'l');
printf("%d\n",a);
}
//strrchr函数 也是不常用的函数 作用是搜索字符在字符串中的末次出现
#include<stdio.h>
char *strrchr(const char *string, char letter)
{
char *ptr=NULL;
while(*string)//这个逻辑在很多地方都有用
{
if(*string==letter)
ptr=string;
string++;
}
return (ptr);
}
int main(int argc,char** argv)
{
char *str="asgdfghghkhuyre";
char *asd=strrchr(str,'g');
printf("%s\n",asd);
return 0;
}
//strchr函数 作用是获取字符串中第一次出现某个字符
char *strchr(const char *string, char letter)
{
while((*string!=letter)&&(*string))
string++;
return (string);
}
int main(int argc,char** argv)
{
char *str="asgdfghghkhuyre";
char *asd=strchr(str,'g');
printf("%s\n",asd);
return 0;
}