1. 程式人生 > >模擬實現strstr函式

模擬實現strstr函式

strstr

函式簡介

函式原型:

char *strstr( const char *string, const char *strCharSet );

函式功能:搜尋一個字串在另一個字串中的第一次出現。
返回值:若strCharSet是string的子串,則返回strCharSet在string的首次出現的地址;如果strCharSet不是string的子串,則返回NULL。
程式碼例項:

    char str[] = "1234xyz";
    char *ret = strstr(str, "34");
    cout << ret << endl;//輸出結果:34xyz

模擬實現

char* my_strstr(const char* string, const char* str)
{
    assert(string);
    assert(str);
    char* str1 = (char*)string;
    char* str2 = (char*)str;
    char* ret = NULL;
    if (*str2 == '\0')
        return str1;
    while (*str1)
    {
        ret = str1;
        while ((*str1) && (*str2) && (*str1 == *str2))
        {
            str1++;
            str2++;
        }
        if
(*str2 == '\0') { return ret; } str1 = ret + 1; str2 = (char*)str; } return NULL; }

相關推薦

模擬實現strstr函式

strstr 函式簡介 函式原型: char *strstr( const char *string, const char *strCharSet ); 函式功能:搜尋一個字串在另一個

模擬實現strcpy、模擬實現strlen、模擬實現strstr函式

1.模擬實現strcpy(strcpy函式的功能是實現字串的複製) 方法一: 演算法思想:定義兩個指標變數dest、str,分別指向目的字串、原字串,只要str指向的內容不為\0,完成複製,返回目的字串的首地址 注意: (1)將原字串指標定義為 const型別(只讀,不可修

模擬實現strstr()函式

strstr (str1,str2)函式是用來判斷字串str2是否是字串str1的子字串的函式,如果是,則返回str2在str1中出現的首字元地址,否則返回null。#include<stdio

C語言:模擬實現字串函式strlen,strcpy,strcat,strcmp,strchr,strstr

什麼是C語言中的字串 字串或串(String)是由數字、字母、下劃線組成的一串字元。通常放在常量字串中或者字元陣列中。C語言中以 ‘\0’ 來作為字串的結束標記。 字元的ASCII編碼表 1.strlen 功能:字串求長 計算給定字串的(unsigned in

C語言模擬實現strstr函數,strrstr 函數

c語言 模擬實現 strstr strstr和strrstr已經算是字符串中相對比較難的了,但是只要我們善於分析,解剖字符串,就會化難為易。其實學習代碼的過程中需要我們靜下心來分析,理解。 srtstr函數的功能及用法 原型:char *strstr(const char *dst, const

模擬實現strcpy函式功能(優化改進)

strcpy函式,字串拷貝函式,傳入兩個引數,將第二個引數的值拷貝到第一個中去。 首先,給出一個普通的程式碼: #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> void

python實現strStr()函式

思路: 1、如果待查詢子串為空,返回0(與c/c++的庫函式保持一致); 2、如果大字串的長度小於待查詢子串的長度,返回-1; 3、計算需要編譯的字串下標位置:l = l1 - l2 + 1;  4、從下標0到下標l遍歷長字串,擷取與待查詢子串長度相同的子字串,判斷內容是否

(LeetCode每日一刷10)實現 strStr() 函式

題目描述: 給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回  -1。   示例: 示例 1: 輸入: haystack =

【Leetcode】實現strStr()函式

Leetcode 題目如下 實現strStr()函式 要求:給定一個haystack字串和一個needle字串,在haystack字串中找出needle字串出現的第一個位置(從0開始)。 如果不存在,則返回-1 示例1. 輸入:haystack = “hello”, need

模擬實現strlen函式

目錄 方式1(遞迴) 方式2(迴圈) 方式3(指標運算) 正文 方式1(遞迴) int my_strlen1(char *str) { if (*str == '\0') {

[LeetCode] 28. 實現 strStr() 函式 —— javascript

28. 實現 strStr() 函式。 給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。 var strStr = function(h

模擬實現strcmp函式

strcmp int strcmp ( const char * str1, const char * str2 ); Compare two strings Compares the C string str1 to the C string str2. This f

C語言模擬實現函式strlen的三種方法

學習之路無止境,漫漫長夜,我愛程式設計。 今天練習的是用C語言來簡單實現庫函式strlen。 首先strlen 函式的作用是求出字串長度,眾所周知,在C語言中,字串是以字串陣列的形式儲存的,並且以’\0’為結束標誌。先讓我們看看strlen庫函式的引數即返回值

第五題:實現strStr()函式

問題描述 實現 strStr() 函式。 給定一個 haystack 字串和一個 needle 字串,在 haystack 字串中找出 needle 字串出現的第一個位置 (從0開始)。如果不存在,則返回 -1。 示例 1: 輸入: haystack = “hello”, n

模擬實現strchr函式

程式碼: #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<

模擬實現函式strchr、strrchr、memchr

①strchr函式【函式原型】:char* strchr(constchar* string,int c);【函式功能】:在一個字串中查詢指定字元的第一次出現的位置。如果查詢成功,返回該字元的地址,如果

面試題 模擬實現strlen函式的3種方法。

第一種方法是用計數器模擬實現strlen函式。#include<stdio.h> #include<assert.h> int my_strlen(const char *str) { int count = 0; assert(str!=NUL

【C語言】模擬實現strchr函式.即在一個字串中查詢一個字元第一次出現的位置並返回

//模擬實現strchr函式.即在一個字串中查詢一個字元第一次出現的位置並返回 #include <stdio.h> //#include <string.h> #includ

用可變引數列表模擬實現printf函式

用可變引數列表實現printf函式要實現printf函式,我們首先應該獲取printf函式中由雙引號中的字串,若遇到不是%的字元,我們應該直接將其輸出,若遇到%,我們應該判斷它後面是什麼字元,這裡先只考慮%c,%s的情況,如果是%c那麼我們應該將讀到的字元輸出來,若為%s,應

模擬實現printf函式,可變引數列表例項

首先可通過CSDN檢視printf函式原型等資訊 實現功能: Print formatted output to the standard output stream. 即格式化輸出並