模擬實現strchr和strrchr
阿新 • • 發佈:2019-01-02
模擬實現strchr()
原型:char *strchr( const char *string, char ch );
所在庫名:#include <string.h>
功能:找出在字串str中第一次出項字元ch的位置,找到就返回該字元位置的指標(也就是返回該字元在字串中的地址的位置),找不到就返回空指標(就是NULL)
程式碼如下:
char *My_strchr(char const *arr, char ch) { assert(arr); while (*arr != '\0') { if (*arr == ch) { return arr; } arr++; } return NULL; }
測試函式:
#include<stdio.h>
#include<windows.h>
#include<assert.h>
int main()
{
char arr[] = "abccd";
printf("%s\n", My_strchr(arr, 'c'));
system("pause");
return 0;
}
結果:
注意:注意返回字串包含我們ch字元。
模擬實現strrchr()
原型:char *strrchr( const char *string, char ch );
所在庫名:#include <string.h>
功能:找出在字串str中最後一次出項字元ch的位置,找到就返回該字元位置的指標(也就是返回該字元在字串中的地址的位置),找不到就返回空指標(就是NULL)
和上面strchr不同之處就在於返回的位置不同!
程式碼如下:
char const *My_strrchr(char const *arr, char ch) { char *pos = 0; assert(arr); while (*arr) { if (*arr == ch) { pos = arr; } arr++; } if (pos != 0) return pos; else return NULL; }
測試函式:
#include<stdio.h>
#include<windows.h>
#include<assert.h>
int main()
{
char arr[] = "abcccd";
printf("%s\n",My_strrchr(arr, 'c'));
system("pause");
return 0;
}
結果:
看!這裡返回的是最後一次出現C的位置