【C 语言】字符串模型 ( 两头堵模型 | 将 两头堵模型 抽象成业务模块函数 | 形参返回值 | 函数返回值 | 形参指针判空 | 形参返回值操作 )
生活随笔
收集整理的這篇文章主要介紹了
【C 语言】字符串模型 ( 两头堵模型 | 将 两头堵模型 抽象成业务模块函数 | 形参返回值 | 函数返回值 | 形参指针判空 | 形参返回值操作 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、將 兩頭堵模型 抽象成業務模塊函數
- 二、完整代碼示例
一、將 兩頭堵模型 抽象成業務模塊函數
將 兩頭堵模型 抽象成業務模塊函數 相關要點 :
- 形參返回值 : 函數的返回值 , 一般使用 函數形參 間接賦值 進行返回 ; 下面的代碼中 int *count 是返回值 ;
- 函數返回值 : 函數的返回值 , 反映的是函數的執行結果狀態 , 返回 0 執行成功 , 返回 -1 執行失敗 ;
- 形參指針判空 : 函數的第一項任務就是 判定 形參指針是否合法 , 如果任何一個指針為空 , 直接返回 -1 ;
- 形參返回值操作 : 函數的真正返回值 , 不要急著寫入到指針指向的內存中 , 先放在局部變量中 , 最終執行完畢后 , 再寫出到指針指向的內存中 ;
二、完整代碼示例
完整代碼示例 :
#include <stdio.h> #include <stdlib.h> #include <string.h>int get_count(char *str_all, int *count) {// 驗證指針合法性 , 指針為空直接返回報錯if(str_all == NULL || count == NULL){printf("error : str_all == NULL || count == NULL");return -1;}// 局部臨時指針變量 接收 函數形參char *str = str_all;// 兩個字符串索引 , i 是指向頭部 , j 指向尾部int i = 0, j = strlen(str) - 1;// 保存非空字符串長度 , 局部臨時變 , 計算結果int count_tmp = 0;// 循環條件是 i 指針指向的 位置 為空 則繼續循環// 遇到第一個不為空的字符 , 便停止循環// 停止循環時的 i 指向從左側開始第一個不為空的字符while(isspace(str[i]) && str[i] != '\0'){i++;}// 循環條件是 j 指針指向的 位置 為空 則繼續循環// 遇到第一個不為空的字符 , 便停止循環// 停止循環時的 j 指向從右側開始第一個不為空的字符while(isspace(str[j]) && str[j] != '\0'){j--;}// 計算結果count_tmp = j - i + 1;// 通過間接賦值設置返回值*count = count_tmp;return 0; }int main() {// 存在如下字符串, 求 前后不為空 的 子串長度char *str = " sdfsdfsdabc4548411abc ";// 要統計的結果int count = 0;// 調用函數計算上述字符串 收尾不為空 的子串int ret = get_count(str, &count);// 打印結果printf("count = %d\n", count);// 命令行不要退出system("pause");return 0; }執行結果 :
總結
以上是生活随笔為你收集整理的【C 语言】字符串模型 ( 两头堵模型 | 将 两头堵模型 抽象成业务模块函数 | 形参返回值 | 函数返回值 | 形参指针判空 | 形参返回值操作 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C 语言】字符串模型 ( 两头堵模型
- 下一篇: 【错误记录】C 语言中通过指针操作字符串