最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言求字符串長度的四種方法實例代碼

 更新時間:2022年12月14日 09:12:12   作者:橘里橘禮  
在C語言的應用過程中經常性的會用到字符串,以及對字符串的長度進行計算的問題,下面這篇文章主要給大家介紹了關于C語言求字符串長度的四種方法的相關資料,需要的朋友可以參考下

前言

我們知道C語言是自帶內置函數(shù)strlen求字符串長度的,但其實我們也可以自己編寫函數(shù)來求字符串長度

方法一:調用內置函數(shù)strlen求字符串長度

#include <stdio.h>
#include <string.h>
 
int main()
{
    char s[] = "abc";
    int len = strlen(s);
    printf("%d ",len);
    return 0;
}

方法二:創(chuàng)建臨時變量計算字符串長度

首先,我們自定義函數(shù)my_strlen求字符串長度

在my_strlen中用count統(tǒng)計字符的個數(shù),我們傳入的char類型的指針str,對他進行解引用(*str)得到str指向的值,循環(huán)判斷(*str)是否等于‘\0’,如果不等,則count+1,str指向下一個字符;如果相等,則說明遍歷到了字符串結尾,最后返回count,也就是統(tǒng)計的字符的個數(shù)。

代碼實現(xiàn)如下:

#include <stdio.h>
 
int my_strlen(char* str)
{
    int count = 0; //計數(shù)
    while(*str != '\0')
    {
        count++;
        str++;
    }
    return count;
}
 
int main()
{
    char s[] = "abc";
    int len = my_strlen(s);
    printf("%d ",len);
    return 0;
}

方法三:不創(chuàng)建臨時變量計算字符串長度(遞歸)

遞歸的主要思想:大事化小

使用遞歸的兩個必要條件:

1、存在限制條件,當滿足這個限制條件的時候,遞歸便不再繼續(xù)

2、每次遞歸調用之后越來越接近這個限制條件

計算字符串(abc)長度的遞歸思想:

代碼實現(xiàn)如下:

#include <stdio.h>
 
int my_strlen(char* str)
{
    if(*str != '\0')
    {
        return 1 + my_strlen(str+1);
    }
    else
        return 0;
}
 
int main()
{
    char s[] = "abc";
    int len = my_strlen(s);
    printf("%d ",len);
    return 0;
}

方法四:指針減指針求字符串長度

兩個指針相減,得到的是兩個指針之間元素的個數(shù)

根據(jù)這個特性,我們可以有一種新的求字符串長度的思路

代碼實現(xiàn):

#include <stdio.h>
 
int my_strlen(char* str)
{
    char* start = str;
    while(*str)
    {
        str++;
    }
    return str - start;
}
 
int main()
{
    char s[] = "abc";
    int len = my_strlen(s);
    printf("%d ",len);
    return 0;
}

注意:

strlen()函數(shù)求出的字符串長度為有效長度,既不包含字符串末尾結束符 ‘\0’;

sizeof()操作符求出的長度包含字符串末尾的結束符 ‘\0’;

當在函數(shù)內部使用sizeof()求解由函數(shù)的形參傳入的字符數(shù)組的長度時,得到的結果為指針的長度,既對應變量的字節(jié)數(shù),而不是字符串的長度,此處一定要小心。(當數(shù)組或者字符串(可以理解為數(shù)組)作為函數(shù)參數(shù)是,是會當做指針來使用,指針的長度由編譯器決定,大多數(shù)為4個byte. )

例如:

void strlen(char* str)
{
     int length;
     length = sizeof(str)/sizeof(str[0]);  //str為4個字節(jié),str[0] = 1  
}

總結

到此這篇關于C語言求字符串長度的四種方法的文章就介紹到這了,更多相關C語言求字符串長度方法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

仁怀市| 翁源县| 固始县| 夹江县| 漳浦县| 乐安县| 太康县| 缙云县| 鱼台县| 茂名市| 中牟县| 博爱县| 资中县| 高清| 峨边| 瓮安县| 化州市| 司法| 任丘市| 久治县| 茶陵县| 山西省| 巴青县| 阿拉善右旗| 临夏市| 浮梁县| 金堂县| 循化| 留坝县| 阿巴嘎旗| 平塘县| 纳雍县| 江津市| 富川| 青神县| 齐齐哈尔市| 舒兰市| 萨嘎县| 和田市| 湘西| 宣城市|