my_strstr()】的更多相关文章

const char* my_strstr(const char* S1,const char* S2){ int i=0,flag=0; while('\0'!=*(S1+i)){ if(*(S1+i)==*S2){ flag=i; int j=0; while('\0'!=*(S2+j)&&*(S1+i)==*(S2+j)){ i++; j++; } if('\0'==*(S2+j)){ return S1+flag; } }else i++; } return NULL; }…
strstr函数:返回主串中子字符串的位置后的所有字符. #include <stdio.h> const char *my_strstr(const char *str, const char *sub_str) { ; str[i] != '\0'; i++) { int tem = i; //tem保留主串中的起始判断下标位置 ; while(str[i++] == sub_str[j++]) { if(sub_str[j] == '\0') { return &str[tem]…
#include <stdio.h> #include <stdlib.h> //malloc()函数 typedef unsigned int size_t; size_t my_strlen(const char * str) { const char *sc = NULL; if(str == NULL) return 0; for(sc = str;*sc != '\0';sc++) { /* do nothing */ } return sc - str; } /* 因为…
      C函数库中有一个函数 strstr(char*, char*),它实现的是在一个原字符串中查找一个子串.假设找到这种一个子串,返回这个子串在原字符串中的起始位置,若没有找到这种一个子串.则返回NULL.       可是,函数库中实现的仅是普通情况下的查找.即没有做太多优化,在运行一些特殊的字符串时效率非常低,所以,在非常多面试中要求改进这个算法,实现效率高的 strstr 算法,这里,我对原算法进行几处修改.在对某些特殊測试用例时.运行效率确实比原算法高出很多,这里,贴出实现代码.…
// 模拟库函数strstr #include <stdio.h> #include <assert.h> const char* my_strstr(const char *parent, const char *child) { const char *pgo = parent; const char *cgo = child; const char *pgos = parent; assert(parent != NULL && child != NULL);…
之前看书,遇到几个编程题,要实现一些库自带的函数.于是动手写了写,并且做了一些测试.今晚在测试的时候,还发现了一些其他内存分配的问题,顺路一起记下.这里只写了字符串转整型,字符串赋值函数. #include <cctype> /*C库函数,将字符串转换成整型*/ int my_atoi(const char* p); /*C库函数,复制源字符串到目的字符串,返回新串*/ char *my_strcpy(char *dest, const char *src); /*C库函数,返回子串*/ ch…
  2 #include<iostream> 3 #include<stdio.h> 4 #include<assert.h> 5 #include <iomanip> 6 using namespace std; 7 //自己模拟实现的部分相关C——string库函数 8 int my_strlen(const char *p) 9 { 10 int count = 0; 11 assert(p); 12 while (*p != '\0') 13 { 1…
为了更好地理解string的各个库函数,现将几个常用的库函数用自己的方式实现如下: #include<iostream> using namespace std; #include<cassert> //求字符串的长度 (注:'\0'的长度不计算在内) int my_strlen(char* str) { if (str == NULL) { return 0; } int len = 0; while (*str++ != '\0')// '\0'不计算在内 { len++; }…
1.strlen()求字符串长度 //模拟实现strlen函数 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<assert.h> int my_strlen1(const char* str) //借助临时变量实现 { ; while (*str) { count++; *str++; } return count; } int my_strlen2(char* s) { c…