首页 > 代码库 > strchr实现
strchr实现
char* strchr(char*s,charc){while(*s!=‘\0‘&&*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=‘\0‘; printf("%s\n", string); //printf("The character %c is at position: %d,ptr=%s,string=%s\n", c, ptr-string,ptr,string); } else printf("The character was not found\n"); return 0; *//*char *ifName="atm/(0_0_32)", *pStart, *pEnd, p[16];pStart=strchr(ifName,‘(‘);pEnd=strchr(ifName,‘)‘);p[0]=‘\0‘;strncat(p,pStart+1,pEnd-pStart-1);printf("%s,pStart=%d,pEnd=%d\n",p,pStart,pEnd);*//* char wanL2PvcName[32]; char *pStart,*pEnd,*pvcname=‘\0‘; 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]=‘\0‘; strncat(wanL2PvcName,pStart+1,pEnd-pStart-1); printf("wanL2PvcName=%s\n",wanL2PvcName); }*/ char *name="ipoe_0_0_32",*pvcname; if (name != NULL) { *name = ‘\0‘; } if(pvcname = strchr(name,‘_‘)) { if(strcmp(pvcname+1,"0_0_32") == 0) printf("pvcname+1=%s\n\n",pvcname+1); }}//函数strstr(),可以用于在一个较长的字符串中查找匹配的字符串或字符。//string strstr(string str,string needle)//如果找到了needle的准确位置,将从needle的前面返回一个字符串。否则返回false。如果不止一个needle,返回的字符串从出现的第一个needle开始。//strchr和strstr()类似。//stristr()不区分大小写,strchr区分大小写//strrchr()是从最后出现needle的位置开始返回string值。
strchr实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。