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