手动实现string类的方法实现

来源:互联网 发布:企业宣传制作软件下载 编辑:程序博客网 时间:2024/05/17 00:53

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;}
0 0