字串相關函式的實現
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字串函式
- Linux下IPC機制實現相關函式Linux函式
- python 的數值和字串和相關內建函式Python字串函式
- mysql 時間相關的函式 以及日期和字串互轉MySql函式字串
- PHP內建字串函式實現PHP字串函式
- 【原創】淺談指標(八)字串相關函式(下集)指標字串函式
- c++字串查詢函式實現C++字串函式
- 微軟實現字串函式的一個BUG (轉)微軟字串函式
- 物件及函式相關物件函式
- SAP PP相關函式函式
- Python 函式相關Python函式
- 正規表示式☞相關函式函式
- 模擬實現字串函式strlen , strcpy ,strcmp字串函式
- C語言-字串函式的實現(一)之strlenC語言字串函式
- C語言-字串函式的實現(五)之strstrC語言字串函式
- C++ 字串截斷的實現(基礎函式)C++字串函式
- 關於字串的功能函式小結字串函式
- ES6 函式相關函式
- 3.3 數學相關函式函式
- SQL 日期格式相關函式SQL函式
- 函式組:CSAP(BOM 相關)函式
- C 語言中返回字串函式的四種實現方法字串函式
- 利用SQL的charindex實現字串陣列和Split函式SQLIndex字串陣列函式
- Sql字串分組Split函式的兩種實現方法SQL字串函式
- 關於字串的幾個有用函式 (轉)字串函式
- QQ瀏覽器Date相關函式實現不符合ECMA規範瀏覽器函式
- 【開發篇sql】 分析函式(一) 評級相關的函式SQL函式
- Python之函式的相關介紹Python函式
- C語言實現字串拷貝函式的幾種方法C語言字串函式
- Go 實現字串首字母大、小寫函式Go字串函式
- 自定義函式實現字串分割,返回集合型別函式字串型別
- (函式)實現strstr函式函式
- 【開發篇sql】 分析函式(二) 行篩選相關的函式SQL函式
- PHP的字串函式PHP字串函式