zoukankan      html  css  js  c++  java
  • strchr实现

    char* strchr(char*s,charc)
    {
    while(*s!=''&&*s!=c)
    {
    ++s;
    }
    return*s==c?s:NULL;
    }
    
    
    
    
    // strchr.c查找字符串s中首次出现字符c的位置
    #include<stdio.h>
    #include<string.h>
    
    char* my_strchr(const char *s1, const char *s2)
    {
        const char *p = s1;
        const size_t len = strlen (s2);
        for(;(p = strchr (p, *s2))!=0;p++)
        {
            if(strncmp(p,s2,len)==0)
            return(char*)p;
        }
        return(0);
    }
    
    int main(void)
    {
    /*
        char string[17];
        char *ptr, c = 'a';
        strcpy(string, "This is a string");
        ptr = strchr(string, c);
        //ptr = my_strchr(string, c);
        if (ptr)
        {
            *ptr='';
            printf("%s
    ", string);
            //printf("The character %c is at position: %d,ptr=%s,string=%s
    ", c, ptr-string,ptr,string);
        }
        else
            printf("The character was not found
    ");
        return 0; 
    */
    /*
    char *ifName="atm/(0_0_32)",   *pStart,      *pEnd,     p[16];
    pStart=strchr(ifName,'(');
    pEnd=strchr(ifName,')');
    p[0]='';
    strncat(p,pStart+1,pEnd-pStart-1);
    printf("%s,pStart=%d,pEnd=%d
    ",p,pStart,pEnd);
    */
    
    /*
       char wanL2PvcName[32];
       char *pStart,*pEnd,*pvcname='';
       strncpy(wanL2PvcName, "atm0/(0_0_45)", sizeof(wanL2PvcName)-1);
       if ((pStart = strchr(wanL2PvcName, '(')) && (pEnd = strchr(wanL2PvcName, ')')))
       {
          //now wanL2PvcName is "0_0_32", "0_0_45" etc. 
          wanL2PvcName[0]='';
          strncat(wanL2PvcName,pStart+1,pEnd-pStart-1);
          printf("wanL2PvcName=%s
    ",wanL2PvcName);
       }
    */
    
            char *name="ipoe_0_0_32",*pvcname;
            if (name != NULL)
            {
                *name = '';
            }
                if(pvcname = strchr(name,'_'))
                {
                    if(strcmp(pvcname+1,"0_0_32") == 0)
                        printf("pvcname+1=%s
    
    ",pvcname+1);
                }
    
    }
    //函数strstr(),可以用于在一个较长的字符串中查找匹配的字符串或字符。
    //string strstr(string str,string needle)
    //如果找到了needle的准确位置,将从needle的前面返回一个字符串。否则返回false。如果不止一个needle,返回的字符串从出现的第一个needle开始。
    //strchr和strstr()类似。
    //stristr()不区分大小写,strchr区分大小写
    //strrchr()是从最后出现needle的位置开始返回string值。
  • 相关阅读:
    学习视频收集
    vscode 编译器插件
    vue2.0父子组件之间传值
    js 案例
    插件
    【转】30分钟掌握 C#6
    【初码干货】关于.NET玩爬虫这些事
    上机作业七 系统进程与计划任务管理
    客户端与服务器双向密钥对验证
    DHCP中继配置
  • 原文地址:https://www.cnblogs.com/timssd/p/4091022.html
Copyright © 2011-2022 走看看