【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...