字串相關函式的實現
1.strlen():求字串長度函式,遇到'\0'結束
函式原型:size_t strlen(const char * str)
引數指向的字串必須以‘\0’結尾
返回值size_t是無符號的
1)使用一個計數器
int my_strlen(const char* str)
{
int count=0;
while (*str)
{
str++;
count++;
}
return count;
}
2)用遞迴的方法
int my_strlen(const char* str)
{
if (*str=='\0')
return 0;
else
return 1 + my_strlen(str+1);
}
3)使用指標-指標的方法
int my_strlen(char* str)
{
char *p = str;
while (*p != 0)
p++;
return p - str;
}
2.strcpy()函式:字串拷貝函式
函式原型:char* strcpy(char * destination,const char * source)
注意事項:
- 源字串必須以‘\0’結束
- 會將源字串中的‘\0’拷貝到目標空間
- 目標空間必須足夠大
- 目標空間必須可變
char* my_strcpy(char* dest, const char* src)
{
char *ret = dest;
assert(dest!=NULL);
assert(src!=NULL);
while ((*dest++ = *src++))
{
;
}
return ret;
}
3.strcat():字串拼接函式,將倆個字串拼接成一個
函式原型:char* strcat(char * destination,const char * source)
注意事項:
- 源字串必須以‘\0’結束
- 目標空間必須足夠大
- 目標空間必須可修改
char* my_strcat(char* dest, const char* src)
{
char* ret = dest;
assert(dest);
assert(src);
while (*dest)
{
dest++;
}
while (*dest++ = *src++)
{
;
}
return ret;
}
4.strcmp()字串比較函式,第一個字串比第二個大,返回1,相當返回0,第一個比第二個小返回-1;
int my_strcmp(const char* str1,const char* str2)
{
int ret = 0;
while (!(ret = *(unsigned char*)str1 - *(unsigned char*)str2)&& *str2)
{
++str1;
++str2;
}
if (ret < 0)
ret = -1;
if (ret > 0)
ret = 1;
return (ret);
}
5.模擬實現strstr(),字串查詢函式,在str1中找子串str2
char* my_strstr(const char* str1, const char* str2)
{
assert(str1);
assert(str2);
char *cp = (char*)str1;
char *substr = (char*)str2;
char *s1 = NULL;
if (*str2 == '\0')
return NULL;
while (*cp)
{
s1 = cp;
substr = str2;
while (*s1 && *substr && (*s1 == *substr))
{
s1++;
substr++;
}
if (*surstr == '\0')
return cp;
cp++;
}
}
相關文章
- 字串的相關函式字串函式
- 【C語言】常用的字串函式及相關函式的自我實現C語言字串函式
- c語言與字串相關的庫函式的模擬實現C語言字串函式
- C語言相關的基礎字串函式C語言字串函式
- MySQL 字串擷取相關函式總結MySql字串函式
- python 的數值和字串和相關內建函式Python字串函式
- mysql 時間相關的函式 以及日期和字串互轉MySql函式字串
- PHP內建字串函式實現PHP字串函式
- 【原創】淺談指標(八)字串相關函式(下集)指標字串函式
- c++字串查詢函式實現C++字串函式
- SAP PP相關函式函式
- 物件及函式相關物件函式
- 模擬實現字串函式strlen , strcpy ,strcmp字串函式
- C語言-字串函式的實現(五)之strstrC語言字串函式
- C語言-字串函式的實現(一)之strlenC語言字串函式
- 關於字串的功能函式小結字串函式
- Python之函式的相關介紹Python函式
- ES6 函式相關函式
- QQ瀏覽器Date相關函式實現不符合ECMA規範瀏覽器函式
- python3 堆相關函式的使用Python函式
- Go 實現字串首字母大、小寫函式Go字串函式
- CodeIgniter框架之url相關函式框架函式
- Python中列表、元組、字典、集合與字串,相關函式,持續更新中……Python字串函式
- 有關字串的一些好用的小函式字串函式
- 學習PHP中的URL相關操作函式PHP函式
- interrupt結構體和相關函式結構體函式
- PG wal日誌LSN相關函式函式
- FreeRTOS-01-任務相關函式函式
- tensorflow相關函式學習總結函式
- 實現關閉程式函式,殺掉pchunter函式
- JavaScript的迭代函式與迭代函式的實現JavaScript函式
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- 模擬實現不受限制的字串函式--C語言版字串函式C語言
- Oracle 字串函式Oracle字串函式
- Oracle 字串函式Oracle字串函式
- 字串函式 metaphone ()字串函式
- 字串函式 print ()字串函式
- 字串函式 explode ()字串函式