真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C語言部分常用庫函數(shù)的作用及其模擬實(shí)現(xiàn)-創(chuàng)新互聯(lián)

1.strlen:

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)興慶免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了超過千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

頭文件:

函數(shù)原型:size_t strlen (const char *str)

作用: 計(jì)算一個(gè)字符串 (字符數(shù)組)中元素的個(gè)數(shù),即從數(shù)組頭部計(jì)數(shù),直到遇到字符串結(jié)束符"\0"為止,計(jì)數(shù)結(jié)果不包括0.

//計(jì)數(shù)器方式
int my_strlen(const char * str)
{
 int count = 0;
 while(*str)
 {
  count++;
  str++;
 }
 return count;
}

//不能創(chuàng)建臨時(shí)變量計(jì)數(shù)器
int my_strlen(const char * str)
{
 if(*str == '\0')
  return 0;
 else
  return 1+my_strlen(str+1);
}

//指針-指針的方式
int my_strlen(char *s)
{
   char *p = s;
   while(*p != ‘\0’ )
       p++;
   return p-s;
}

2.strcpy:

頭文件:

函數(shù)原型:char *strcpy(char *Dest, const char *Src)

作用: 把含有"\0"結(jié)束符的字符串復(fù)制到另一個(gè)地址空間,返回值類型為char*

char* my_strcpy(char* dest,const char* src)
{
    char* start = dest;
    assert(dest && src);
    while (*dest++ = *src++)
    {
        ;
    }
    return start;
}

3.strcmp:

頭文件:

函數(shù)原型:int strcmp(char str1,char str2)

作用: 對(duì)兩個(gè)字符串自左至右逐個(gè)字符相比(按ASCII碼值大小比較),直到出現(xiàn)不同的字符或遇到‘\0’為止。如果全部字符相同,則認(rèn)為相等;若出現(xiàn)不相同的字符,則以第一個(gè)不相同的字符的比較結(jié)果為準(zhǔn)。

int my_strcmp(const char* str1, const char* str2)
{
    assert(str1 && str2);
    while (*str1 == *str2)
    {
        if (*str1 == '\0')
        {
            return 0;
        }
        str1++;
        str2++;
    }
    if (*str1 >*str2)
        return 1;
    
    else
        return -1;
}

4.strcat:

頭文件:

函數(shù)原型:char*strcat(char* strDestination, const char* strSource)

作用: 把 strSource(源頭字符串)所指向的字符串追加到 strDestination(目的地字符串)所指向的字符串的結(jié)尾,所以必須要保證 strDestination 有足夠的內(nèi)存空間來容納兩個(gè)字符串,否則會(huì)導(dǎo)致溢出錯(cuò)誤。

char *my_strcat(char *dest, const char*src)
{
 char *ret = dest;
 assert(dest != NULL);
 assert(src != NULL);
 while(*dest)
 {
  dest++;
 }
 while((*dest++ = *src++))
 {
  ;
 }
 return ret;
}

5.strstr:

頭文件:

函數(shù)原型: char* strstr (const char* str1,const char* str2)

函數(shù)用于判斷字符串str2是否是str1的子串。 如果是, 則該函數(shù)返回str2在str1中首次出現(xiàn)的地址;否則,返回NULL。

char* my_strstr(const char* str1, const char* str2)
{
    assert(str1 && str2);
    if (str2 == '\0')
        return str1;
    char* s1 = NULL;
    char* s2 = NULL;
    char* cp = str1;
    while (*cp)
    {
        s1 = cp;
        s2 = str2;
        while (s1 != '\0' && s2 != '\0' && *s1 == *s2)
        {
            s1++;
            s2++;
        }
        if (*s2 == '\0')
        {
            return cp;
        }
        cp++;
    }
}

6.memcpy:

頭文件:

函數(shù)原型:void *memcpy(void*dest, const void *src, size_t n);

作用:由src指向地址為起始地址的連續(xù)n個(gè)字節(jié)的數(shù)據(jù)復(fù)制到以destin指向地址為起始地址的空間內(nèi)。

void* my_memcpy(void* str1, void* str2,size_t num)
{
    void* ret = str1;
    assert(str1 && str2);
    while (num--)
    {
        *(char*)str1 = *(char*)str2;
        str1 = (char*)str1 + 1;//++(char*)str1;
        str2 = (char*)str2 + 1;//++(char*)str2;


    }
    return ret;
}

7.memmove

頭文件:

函數(shù)原型:void *memmove(void *dest, const void *src, unsigned int count)

作用:由src所指內(nèi)存區(qū)域復(fù)制count個(gè)字節(jié)到dest所指內(nèi)存區(qū)域

void* my_memmove(void* str1, void* str2, size_t num)
{
    void* ret = str1;
    assert(str1 && str2);
    if (str1< str2)
    {
        while (num--)
        {
            *(char*)str1 = *(char*)str2;
            str1 = (char*)str1 + 1;//++(char*)str1;
            str2 = (char*)str2 + 1;//++(char*)str2;


        }
    }
    else
    {
        while (num--)
        {
            *((char*)str1 + num) = *((char*)str2 + num);
        }
    }
    return ret;
}

8.strerror

頭文件:

函數(shù)原型:char*strerror(int errnum)

1.庫函數(shù)調(diào)用失敗的時(shí)候會(huì)產(chǎn)生錯(cuò)誤碼,而每一個(gè)錯(cuò)誤碼對(duì)應(yīng)著一條錯(cuò)誤信息,strerror函數(shù)的作用就是將錯(cuò)誤碼給轉(zhuǎn)化成錯(cuò)誤信息。

2.在C語言中有一條全局的錯(cuò)誤碼errno,在程序運(yùn)行過程中,只要庫函數(shù)調(diào)用失敗,我們就會(huì)把此處產(chǎn)生的錯(cuò)誤碼放入變量errno中。

3.返回值和參數(shù):char * strerror ( int errnum );該函數(shù)的參數(shù)就是一個(gè)錯(cuò)誤碼,輸入該錯(cuò)誤碼后,經(jīng)函數(shù)內(nèi)部處理,將該錯(cuò)誤碼轉(zhuǎn)化成一條錯(cuò)誤信息(類型是字符串)并將該錯(cuò)誤信息(字符串)的地址返回。

————————————————

版權(quán)聲明:本文為博主「烏龍茶QAQ」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/codezhu/article/details/118877528

9.perror

頭文件:

函數(shù)原型:void perror(const char*str)

作用:直接打印錯(cuò)誤信息,在打印錯(cuò)誤信息前會(huì)先打印自定義的信息

10.memset

頭文件:

函數(shù)原型:void*memset(void*ptr,int value,size_t num)

作用:作用是將某一塊內(nèi)存中的內(nèi)容全部設(shè)置為指定的值, 這個(gè)函數(shù)通常為新申請(qǐng)的內(nèi)存做初始化工作。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


分享題目:C語言部分常用庫函數(shù)的作用及其模擬實(shí)現(xiàn)-創(chuàng)新互聯(lián)
瀏覽地址:http://weahome.cn/article/dijjdi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部