【C 语言】字符串模型 ( strstr-do…while 模型 )
生活随笔
收集整理的這篇文章主要介紹了
【C 语言】字符串模型 ( strstr-do…while 模型 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 前言
- 一、strstr 函數
- 二、子串查找業務場景
- 三、代碼示例
前言
字符串開發模型 :
-
strstr-while/do…while 模型 : 在 字符串 中 查找 子串特征 ;
-
兩頭堵模型 : 兩個指針變量 , 一個指向首部 , 一個指向尾部 , 進行 翻轉 , 逆序 等操作 ;
-
字符串翻轉模型 : 借助 指針 進行翻轉 , 或 借助 棧 后進先出的特性 , 進行 翻轉 ;
一、strstr 函數
strstr 函數的作用是在 char *str1 字符串中查找 char *str2 字符串 ;
函數原型 :
#include <stdio.h> #include <string.h> extern char *strstr(char *str1, const char *str2);-
char *str1 參數是 大字符串 ;
-
const char *str2 參數是 小字符串 ;
-
返回值 : 如果 char *str1 中包含 const char *str2 子串 , 則返回該子串第一次出現的指針地址 , 如果沒有 , 則返回 NULL ;
二、子串查找業務場景
業務場景 : 給定字符串 , 然后在下面的字符串中查找 “abc” 字符串的出現次數 ;
// 存在如下字符串, 求下面字符串 "abc" 出現次數 char *p = "sdfsdfsdabc4548411abc";令指針指向 字符串 首地址 , 查找后面的 字符串 中是否是 “abc” ;
三、代碼示例
代碼示例 :
#include <stdio.h> #include <stdlib.h> #include <string.h>int main() {// 存在如下字符串, 求下面字符串 "abc" 出現次數char *str = "sdfsdfsdabc4548411abc";// 記錄下 "abc" 子串出現次數int count = 0;// 使用 p 指針進行遍歷char *p = str;do{// 查找 p 指針指向的字符串中, 是否包含 "abc" 子串// 如果包含 , 返回子串第一次出現的指針地址// 如果不包含 , 返回 NULLp = strstr(p, "abc");// 包含的情況if(p != NULL){// 子串出現次數 + 1count++;// 跳過當前的 "abc" 子串 , 從后面開始遍歷p = p + strlen("abc");}else{// 如果沒有找到 "abc" 子串 , 則退出循環換break;}}while(*p != '\0');// 打印子串出現次數printf("count = %d\n", count);// 命令行不要退出system("pause");return 0; }執行結果 :
總結
以上是生活随笔為你收集整理的【C 语言】字符串模型 ( strstr-do…while 模型 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C 语言】字符串拷贝 ( 函数形参使用
- 下一篇: 【C 语言】字符串模型 ( strstr