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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【C 语言】字符串模型 ( 两头堵模型 )

發布時間:2025/6/17 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C 语言】字符串模型 ( 两头堵模型 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、兩頭堵模型
  • 二、完整代碼示例





一、兩頭堵模型



兩頭堵模型 是 有 222 個指針 , 一個指向字符串頭部 , 一個指向字符串尾部 ;

  • 頭部指針 從左向右 開始遍歷 ;
  • 尾部指針 從右向左 開始遍歷 ’ ’

業務邏輯 : 從 " sdfsdfsdabc4548411abc " 字符串中 , 找出 前后不為空 的 子串長度 ;

聲明兩個指針 , 分別指向開始 和 結尾處 ;

// 存在如下字符串, 求 前后不為空 的 子串長度char *str = " sdfsdfsdabc4548411abc ";// 兩個字符串索引 , i 是指向頭部 , j 指向尾部int i = 0, j = strlen(str) - 1;

左側的指針從左向右遍歷 :

// 循環條件是 i 指針指向的 位置 為空 則繼續循環// 遇到第一個不為空的字符 , 便停止循環// 停止循環時的 i 指向從左側開始第一個不為空的字符while(isspace(str[i]) && str[i] != '\0'){i++;}

右側的指針從右向左遍歷 :

// 循環條件是 j 指針指向的 位置 為空 則繼續循環// 遇到第一個不為空的字符 , 便停止循環// 停止循環時的 j 指向從右側開始第一個不為空的字符while(isspace(str[j]) && str[j] != '\0'){j--;}



二、完整代碼示例



代碼示例 :

#include <stdio.h> #include <stdlib.h> #include <string.h>int main() {// 存在如下字符串, 求非空格子串的長度char *str = " sdfsdfsdabc4548411abc ";// 兩個字符串索引 , i 是指向頭部 , j 指向尾部int i = 0, j = strlen(str) - 1;// 保存非空字符串長度int count = 0;// 循環條件是 i 指針指向的 位置 為空 則繼續循環// 遇到第一個不為空的字符 , 便停止循環// 停止循環時的 i 指向從左側開始第一個不為空的字符while(isspace(str[i]) && str[i] != '\0'){i++;}// 循環條件是 j 指針指向的 位置 為空 則繼續循環// 遇到第一個不為空的字符 , 便停止循環// 停止循環時的 j 指向從右側開始第一個不為空的字符while(isspace(str[j]) && str[j] != '\0'){j--;}// 計算結果count = j - i + 1;// 打印結果printf("count = %d\n", count);// 命令行不要退出system("pause");return 0; }

執行結果 :

count = 21 請按任意鍵繼續. . .

總結

以上是生活随笔為你收集整理的【C 语言】字符串模型 ( 两头堵模型 )的全部內容,希望文章能夠幫你解決所遇到的問題。

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