日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【C 语言】字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )

發布時間:2025/6/17 编程问答 27 豆豆

文章目錄

  • 前言
  • 一、業務子函數接口定義要點
  • 二、完整代碼示例

前言

字符串開發模型 :

  • strstr-while/do…while 模型 : 在 字符串 中 查找 子串特征 ;

  • 兩頭堵模型 : 兩個指針變量 , 一個指向首部 , 一個指向尾部 , 進行 翻轉 , 逆序 等操作 ;

  • 字符串翻轉模型 : 借助 指針 進行翻轉 , 或 借助 棧 后進先出的特性 , 進行 翻轉 ;





一、業務子函數接口定義要點



在上一篇博客 【C 語言】字符串模型 ( strstr-while 模型 ) 的基礎上 , 將相關功能封裝成 API 函數 , 將 主函數子業務 函數分離開 ;

  • 自定義函數接口 ;
  • 分離 自定義的 業務子函數 與 主函數 main() ;

定義的接口如下 :

  • 要點 111 形參指針間接賦值 : 主要是獲取子串大小 , 通過 int *sub_count 參數的 間接賦值 , 實現函數結果返回 ;
  • 要點 222 返回值狀態 : 返回值主要是 反應函數執行狀態 , 返回 000 代表函數執行成功 ;
/** 獲取字符串中子串個數接口* char *main_str : 大字符串* char *sub_str : 子字符串* int *sub_count : 存放查找到的子字符串個數* 返回值返回執行狀態 , 成功返回 0 , 失敗返回失敗代碼*/ int get_sub_count(char *main_str, char *sub_str, int *sub_count) {return 0; }

函數中的要點 :

  • 形參指針處理 : 定義 局部 臨時 指針變量 , 接收 函數形參變量 , 盡量不修改 函數 形參 的值 ;
  • 形參指針判空 : 凡是傳入的指針 , 一律判定指針是否合法 ;
  • 形參返回值處理 : 返回值不要直接修改 , 先定義臨時局部變量保存返回值 , 最后執行完畢 , 再將返回值 通過 間接賦值 賦值給 形參中的 返回值指針 指向的 內存地址 ;
/** 獲取字符串中子串個數接口* char *main_str : 大字符串* char *sub_str : 子字符串* int *sub_count : 存放查找到的子字符串個數* 返回值返回執行狀態 , 成功返回 0 , 失敗返回失敗代碼*/ int get_sub_count(char *main_str, char *sub_str, int *sub_count) {// 為了不修改 函數 形參 的值 , 使用指針變量接收 函數形參char *main_str_tmp = main_str;char *sub_str_tmp = sub_str;// 返回值臨時值, 先不要修改 sub_count 指針指向的值 , 最后計算完畢后再修改int sub_count_tmp = 0;// 判定指針是否合法// 如果形參指針為 NULL , 直接退出函數 , 并返回 -1 錯誤碼if(main_str_tmp == NULL || sub_str_tmp == NULL || sub_count == NULL){printf("error : main_str_tmp == NULL || sub_str_tmp == NULL || sub_count == NULL");return -1;}// 在循環條件中// 查找 p 指針指向的字符串中, 是否包含 "abc" 子串// 如果包含 , 返回子串第一次出現的指針地址 , 非 0 則執行循環體內容// 如果不包含 , 返回 NULL , 如果沒有找到 , 退出循環 , 繼續向后執行while (main_str_tmp = strstr(main_str_tmp, sub_str_tmp)){// 子串出現次數 + 1sub_count_tmp++;// 跳過當前的 "abc" 子串 , 從后面開始遍歷main_str_tmp = main_str_tmp + strlen(sub_str_tmp);// 如果下一個字節是結尾字節 , 直接退出循環if(*main_str_tmp == '\0'){break;}}// 指針間接賦值 設置 返回值*sub_count = sub_count_tmp;return 0; }



二、完整代碼示例



完整代碼示例 :

#include <stdio.h> #include <stdlib.h> #include <string.h>/** 獲取字符串中子串個數接口* char *main_str : 大字符串* char *sub_str : 子字符串* int *sub_count : 存放查找到的子字符串個數* 返回值返回執行狀態 , 成功返回 0 , 失敗返回失敗代碼*/ int get_sub_count(char *main_str, char *sub_str, int *sub_count) {// 為了不修改 函數 形參 的值 , 使用指針變量接收 函數形參char *main_str_tmp = main_str;char *sub_str_tmp = sub_str;// 返回值臨時值, 先不要修改 sub_count 指針指向的值 , 最后計算完畢后再修改int sub_count_tmp = 0;// 判定指針是否合法// 如果形參指針為 NULL , 直接退出函數 , 并返回 -1 錯誤碼if(main_str_tmp == NULL || sub_str_tmp == NULL || sub_count == NULL){printf("error : main_str_tmp == NULL || sub_str_tmp == NULL || sub_count == NULL");return -1;}// 在循環條件中// 查找 p 指針指向的字符串中, 是否包含 "abc" 子串// 如果包含 , 返回子串第一次出現的指針地址 , 非 0 則執行循環體內容// 如果不包含 , 返回 NULL , 如果沒有找到 , 退出循環 , 繼續向后執行while (main_str_tmp = strstr(main_str_tmp, sub_str_tmp)){// 子串出現次數 + 1sub_count_tmp++;// 跳過當前的 "abc" 子串 , 從后面開始遍歷main_str_tmp = main_str_tmp + strlen(sub_str_tmp);// 如果下一個字節是結尾字節 , 直接退出循環if(*main_str_tmp == '\0'){break;}}// 指針間接賦值 設置 返回值*sub_count = sub_count_tmp;return 0; }int main() {// 存在如下字符串, 求下面字符串 "abc" 出現次數char *str = "sdfsdfsdabc4548411abc";// 記錄下 "abc" 子串出現次數int count = 0;// 要查詢的子串char sub[] = "abc";// 注意返回值 使用 指向 count 變量的指針 間接賦值 進行返回int ret = get_sub_count(str, sub, &count);// 如果返回非 0 值 , 說明執行失敗if(ret != 0){printf("get_sub_count failed!");}// 打印子串出現次數printf("count = %d\n", count);// 命令行不要退出system("pause");return 0; }

執行結果 :

總結

以上是生活随笔為你收集整理的【C 语言】字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩 欧美 | 免费看成人片 | 梦梦电影免费高清在线观看 | 一区二区精品在线 | 在线免费黄色网址 | 人妖一级片 | 一区国产在线 | 国产高清免费在线观看 | 综合久色 | 成人午夜影院在线观看 | 亚洲爽爽爽 | 久久久一区二区 | 久久久久97 | 精品自拍偷拍视频 | 欧美a一级片 | 男生和女生一起差差差很痛的视频 | 欧美a级大片 | 操操操网站 | 亚洲国产tv | 国产传媒视频在线 | 国产日日日 | 香蕉婷婷 | 国产91在线播放 | 91丨国产丨白丝 | 国产日韩欧美二区 | 亚洲狼人在线 | 欧美激情综合 | 无码人妻aⅴ一区二区三区日本 | wwww日本60| 精品一区二区三区无码按摩 | 日日摸夜夜 | 91精品国产成人 | 国内福利视频 | 一区二区av电影 | 国产剧情一区在线 | www,五月天,com | 免费精品视频一区二区三区 | 久久久久久av | 日本三级片在线观看 | 一本色道久久综合亚洲精品 | 尤物精品视频在线观看 | 国产黄色网页 | 国产视频黄色 | 九九热精品视频在线观看 | 99性趣网 | 香蕉久久av | 手机在线观看毛片 | 韩国av免费在线观看 | 五月天国产视频 | 国产一级二级在线观看 | 精品国产污污免费网站入口 | 女生扒开腿让男生操 | 亚洲欧美日本一区二区三区 | 欧美综合专区 | 不卡影院av| 免费黄色av | 国产乱人伦app精品久久 | www.黄色av | 另类性姿势bbwbbw | 国产精品嫩草影院av蜜臀 | 亚洲欧美在线综合 | 七月婷婷综合 | 五月激情小说 | 狠狠操人人干 | 欧美一区二区三区系列电影 | 女生抠逼视频 | 草视频在线 | 亚洲综合成人亚洲 | 精品久久久无码中文字幕边打电话 | 亚洲美女屁股眼交8 | 亚洲综合在线成人 | 善良的女邻居在线观看 | 毛片毛多水多 | 久久久久国产精品午夜一区 | 久久精品爱 | www,jizz,com| 欧美色视频一区二区三区 | 久久无码人妻精品一区二区三区 | 亚洲av无码乱码国产精品fc2 | 日韩av资源| 蜜桃在线一区 | 欧洲精品免费一区二区三区 | 九一九色国产 | 一区二区三区www污污污网站 | 激情久久久久久 | 视频在线观看电影完整版高清免费 | 91精品国产综合久久国产大片 | 99热在线国产 | 国产在线视频在线观看 | 在线播放av片 | 视频日韩 | 视频一区二区三区精品 | 久热99 | av国产一区二区 | 91精品一区二区三区在线观看 | 欧美一区日韩一区 | 亚洲影院一区 | 特黄三级又爽又粗又大 | 91成人在线观看喷潮蘑菇 |