模擬實現strstr strchr strcmp

2021-09-18 06:12:15 字數 2034 閱讀 8339

【1、問題描述】:

模擬實現strstr,在字串str1的中查詢是否包含字串str2。

【解題思路】:

1、建立兩個指標char* ptr1和char* ptr2分別指向str1和str2兩個字串的首位字元,再建立乙個指標char* red_ptr1指向ptr1的位置。

2、當red_ptr1指向元素等於ptr2指向元素時,這兩個指標一同往後移,前提是這兩個指標指向的位置都不是\0。

3、如果ptr2指向\0時,說明str2已經遍歷完了,在str1中找到了str2這個子串,返回ptr1的值。

4、如果red_ptr1指向元素不等於ptr2指向元素時,ptr1後移一位,ptr2回到首位置,red_ptr1回到ptr1的位置,重新比較。直到ptr1指向了\0,那麼我們就可以得知str1中不包含str2。

【實現**】

#include#include#includechar* strstr(const char* str1, const char* str2) 

char* ptr1 = str1;//記錄從哪個位置找字串子串

while (*ptr1 != '\0')

if (*ptr2 == '\0')

if (*ptr2 != *red_ptr1)

} if (*ptr1 == '\0')

}int main()

【執行結果】

【2、問題描述】

模擬實現strchr,在乙個字串中查詢乙個字元,並返回該字元在字串中的位置。

【解題思路】

這個問題比較簡單,遍歷str中的所有字元,當與要查詢字元相等時,返回相對應的下標即可。

【實現**】

#include#include#includechar* strchr(const char* str, int character) 

if (*str == '\0')

}int main()

system("pause");

return 0;

}

【執行結果】

【3、問題描述】

模擬實現strcmp,按字典序的方式比較兩個字串的大小。

【功能要求】

1、按字典序方式比較兩個字串大小。

2、若第乙個字串大於第二個字串,返回1。第乙個字串等於第二個字串,返回0,否則返回-1。

【實現**】

#include#include#includeint strcmp(const char* str1, const char* str2) 

else if (str1[i] < str2[i])

else if (str1[i] == str2[i]);//注意此時並沒有比較完,不可以直接返回0,所以直接寫乙個;

} if (str1[i] < str2[i])

if (str1[i] > str2[i])

else

}int main()

else if (ret < 0) {

printf("str1【執行結果】

模擬實現Spring IOC

通過在類上標註 registration 註冊進容器,injection從容器注入物件 容器類 public class springcontainer else bean.setbeanclass c mappropsmap new hashmap 處理注入屬性 field props c.get...

模擬實現strcmp

函式簡介 原型 int strcmp const char s1,const char s2 所在標頭檔案 string.h 功能 比較字串s1和s2。一般形式 strcmp 字串1,字串2 說明 當s1注意不是 1 當s1 s2時,返回值 0 當s1 s2時,返回正數 注意不是1 如下 int m...

模擬實現strncat

模擬實現strncat 在系統庫函式中,存在strncat這個函式,它用於字串的追加,就是在乙個字串後面再追加乙個字串,它的函式原型為 char strncat char strdest,const char strsource,size t count 在其中,strdest為目標字串,strso...