模擬庫函式strchr和strrstr
{
assert(dest);
assert(str);
while (*dest) //使dest指向'\0'
{
dest++;
}
dest--; //使dest指向字串最後一個字母
while (*dest)
{
char* tmp = dest; //如果進入下一個while迴圈,記錄下進入前dest的地址
while (*str)
{
if (*dest++ == *str++)
{
;
}
else
{
break;
}
}
dest--; //dest倒退一個字元
if (*str == '\0')
{
return tmp ; //若*str等於'\0',已經找到了,則返回進入第二個while迴圈時dest的起始位置.
}
}
return 0;
}
int main()
{
char* arr1 = "acddefdefgh";
char* arr2 = "fg";
printf("%s\n", my_strrstr(arr1, arr2));
system("pause");
return 0;
}
相關推薦
模擬庫函式strchr和strrstr
char* my_strrstr(char* dest, const char* str) {assert(dest);assert(str);while (*dest) //使dest指向'\0'{dest++; }dest--; //使dest指向字串最後一個字母wh
模擬實現庫函式strchr、strrchr、memchr
①strchr函式【函式原型】:char* strchr(constchar* string,int c);【函式功能】:在一個字串中查詢指定字元的第一次出現的位置。如果查詢成功,返回該字元的地址,如果
初夏小談:函式 strchr 和 strcmp 詳解
實現和strchr(查詢字元首次出現的位置) #include<Aventador_SQ.h> int Strchr(char arr[], char Char,int* location) { int i = 0; int ArrLen = strlen(arr); int
php函式strchr和strrchr
測試程式碼如下 $str1 = 'www.ahao.com/hao/user/hadetail/[tools]'; echo "<br>"; echo '...............strchr........
C++11新特性(11)- 標準庫函式begin和end
遍歷陣列元素的方法假設有一個數組:inta1[]{1,2,3,4,5};遍歷陣列的所有元素,可以這樣:for(unsignedinti=0;i<sizeof(a1)/sizeof(a1[0]);++i){cout<<a1[i]<<endl;}也可
C/C++庫函式strstr和find實現子字串查詢
1 子字串查詢實現Demo #include<iostream> #include<string> #include<cstring> using namesp
《Linux作業系統分析》之使用庫函式API和C程式碼中嵌入彙編程式碼兩種方式使用同一個系統呼叫
本篇文章分析的是使用庫函式API和C程式碼中嵌入彙編程式碼兩種方式使用同一個系統呼叫,來說明在Linux系統中,系統呼叫的實現機制。 相關知識 首先關於這篇文章會介紹一些用到的知識。 一、什麼是核心態,什麼又是使用者態。 核心態:在高執行級別下,程式碼可以執行特權指令,
C語言模擬實現strncpy、strncpy、strncat、strstr和strrstr函式實現
以下是我用C語言模擬實現的部分字串函式: 1、strncpy函式的實現 #include<stdio.h> #include<assert.h> #include<
Linux:基礎IO(cIO庫函式詳細介紹)(IO系統呼叫介面詳細介紹)(兩者關係:檔案描述符和檔案指標)
目錄 c系統中的庫函式: fopen:開啟檔案 fclose:關閉檔案 fwrite:向檔案寫入一個數據塊 fread:讀寫 fprintf:格式化輸出到一個流/檔案中 fseek:移動/跳轉 到當前 讀取/寫入位置 fgets:獲取字串 fput:把字串寫入到指
python3使用ctypes在windows中訪問C和C++動態連結庫函式示例
python3使用ctypes在windows中訪問C和C++動態連結庫函式示例 這是我們的第一個示例,我們儘量簡單,不傳參,不返回,不訪問其他的動態連結庫 一 測試環境介紹和準備 測試環境: 作業系統:windows10 Python版本:3.7.0 VS版本:vs2015社群版(免費) 相關
C++ string成員函式和cstring庫函式
首先是C字串: C 庫函式 - strcmp() 比較2個C字串的字典序大小 描述 C 庫函式 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字
關於 C#呼叫c庫,將C#的byte[]傳入C庫的方法和將C庫的char*向上傳入C#的回撥函式byte[] 的方法
需求 使用C#開發,因某種原因,寫了C庫Dll,使用C#抓圖資料傳入C,將C庫收到的圖片資料向上傳入C#回撥函式。 當前現狀 C#中將byte[]轉換成I
庫函式是使用者程式和核心之間的橋樑
就像我們能夠程式設計列印字元等操作就是呼叫了系統呼叫,但是我們沒有寫呼叫系統呼叫的程式碼,這就是庫函式的功勞了。而我們只是引入了包含了庫函式的標頭檔案。 比如printf函式,我們在標頭檔案<stdio.h>中包含了printf函式的宣告,但是,如果我們寫一個簡單的函式的話,
Qt:Qt使用滑鼠模擬函式mouse_event和按鍵模擬函式keybd_even實現網頁重新整理功能
用Qt實現網頁重新整理功能 前言 在上一篇部落格Qt:使用Qt實現網頁自動重新整理工具,使用了PostMassage函式 通過Windows的訊息機制實現的網頁重新整理功能。因為訊息種類太多,不方便使用和記憶,所以Windows下的大部分訊息可以使用對應等價的API函式,不必直接
C語言函式篇(五)靜態庫和動態庫的建立和使用
使用庫函式是原始碼的一種保護?我猜的. 庫函式其實不是新鮮的東西,我們一直都在用,比如C庫. 我們執行pringf() 這個函式的時候,就是呼叫C庫的函式. 下面記錄靜態庫和動態庫的生成和使用. 靜態庫:libxxx.a 動態庫:libxxx.so
STM32的HAL庫的 I2C和UART使用函式,幾個好用的
void I2C_Write(uint8_t* pBuffer, uint8_t DeviceAddr, uint8_t RegisterAddr,uint16_t NumByteToWrite){ //HAL_I2C_Master_Transmit(&hi2c1
學習筆記 c++ (boost庫,訊號和槽函式)
#include"iostream" #include"boost/signals.hpp" using namespace std; void my_slot(){ cout<<"my_slot()"<<endl; } void my_sl
系統呼叫和庫函式及API的區別
在寫程式的過程中,像MFC,VC++這些程式設計,都會涉及到函式的呼叫,有庫函式也有系統函式,下面看一看它們的區別!! 系統呼叫(system call)和庫函式呼叫(Library function call)的區別?
利用Java庫函式和自己實現的解析演算法來讀取X.509證書
目錄 Java自帶庫函式讀取X.509證書欄位 理解證書資料格式,然後解析 基本概念 演算法思路 核心步驟 Java自帶庫函式讀取X.509證書欄位 這個很簡單,直接上程式碼。讀取然後全部輸出,或者輸出對應欄位。 import java.securit
C語言模擬實現庫函式strlen的三種方法
學習之路無止境,漫漫長夜,我愛程式設計。 今天練習的是用C語言來簡單實現庫函式strlen。 首先strlen 函式的作用是求出字串長度,眾所周知,在C語言中,字串是以字串陣列的形式儲存的,並且以’\0’為結束標誌。先讓我們看看strlen庫函式的引數即返回值