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)查看詳情吧