1.實現strcpy
2.實現strcat
3.實現strstr
4.實現strchr
5.實現strcmp
6.實現memcpy
7.實現memmove
/*
1.實現strcpy 2.實現strcat 。在2019.11.11專案中
3.實現strstr,功能:如果乙個字串是另乙個字串的一部分,返回字串起始指標,否則返回空指標
4.實現strchr,功能:在引數 str 所指向的字串中搜尋第一次出現字元 c(乙個無符號字元)的位置
//返回乙個指向該字串中第一次出現的字元的指標,如果字串中不包含該字元則返回null空指標
5.實現strcmp功能:字串ascii比較
6.實現memcpy功能:記憶體拷貝:對任意型別資料進行n個位元組的拷貝
7.實現memmove功能:拷貝位元組,如果目標區域和源區域有重疊的話,
memmove能夠保證源串在被覆蓋之前將重疊區域的位元組拷貝到目標區域中,
但複製後源內容會被更改。但是當目標區域與源區域沒有重疊則和memcpy函式功能相同。
*/#include
#include
#include
char
*my_strstr
(const
char
* src,
const
char
* dst)
//src是原始字串,dst是待檢測的字串if(
*dststart ==
'\0'
)else
}return
null;}
char
*my_strchr
(const
char
*str,
int achar)
else
}return
null;}
intmy_strcmp
(const
char
* str1,
const
char
* str2)if(
(*str1==
'\0')&&
(*str2==
'\0'))
elseif(
(*str1 ==
'\0')&&
(*str2 !=
'\0'))
elseif(
(*str1 !=
'\0')&&
(*str2 ==
'\0'))
}void
*my_memcpy
(void
* dst,
void
* src,
unsigned
int n)
char
* basedst =
(char
*)dst;
char
* basesrc =
(char
*)src;
while
(n--
)return dst;
}void
*my_memmove
(void
* dst,
const
void
* src, size_t count)
return dst;
}else
if(dst>src)
return dst;}}
intmain()
;printf
("%p\n"
, arr1)
;printf
("%p\n"
,my_strstr
(arr1,
"bc"))
;printf
("%p\n"
,my_strchr
(arr1,
'a'));
printf
("%d\n"
,my_strcmp
(arr1,
"abcd"))
;my_memcpy
(arr3, arr5,1)
;printf
("%c\n"
,arr3[0]
);printf
("%c\n"
, arr3[1]
);printf
("%c\n"
, arr3[2]
);my_memmove
(arr2,arr1,
sizeof
(arr1));
printf
("%s\n"
,arr2)
;my_memmove
(arr4+
5, arr4,6)
;printf
("%s\n"
, arr4)
;system
("pause");
return0;
}
字串函式實現
本文介紹了strcpy,strcnpy,atoi,itoa,strcmp,strncmp,字串逆置的c語言實現 比較簡單,或許存在bug 1.strcpy,strncpy 2.字串的逆置 void reverse char s q 這個時候q是指向 0 的,所以需要往前移動一下 while q p ...
字串函式實現
1.memmove void memmove void dest,const void src,size t count memmove用於從source拷貝count個字元到dest,如果目標區域和源區域有重疊的話,memmove能夠保證在源串覆蓋之前將重疊區域的位元組拷貝到目標區域中 void ...
js字串函式 2
js自帶函式 substr 返回字串的乙個子串,傳入引數是起始位置和長度 var sub string1 a.substr 1 sub string1 ello var sub string2 a.substr 1,4 sub string2 ello replace 用來查詢匹配乙個正規表示式的字...