歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

Linux字符串處理函數介紹

 Linux內核不能使用用戶空間的函數,不過內核裡還是有很多同名字符串處理函數可用,基本沒有障礙。

  #include <linux/string.h>即可

  當然,有的函數還是體系結構優化的,例如有的powerpc處理器含有正則表達式硬件加速器。對於優化處理的函數,必須定義相應的__ HAVE_ARCH_OPERATION宏

  否則,都是用lib/string.c 中實現的體系結構無關的標准操作。

  strcmp、strncmp,這個不用解釋

  strnicmp,同strncmp,不檢查大小寫

  strcpy、strncpy這些也不用解釋,

  strlcpy,類似於strncpy,但是如果源字符串大於size,那麼能保證目標字符串仍然是0結尾字符串。

  char * strcat(char *, const char *);

  將src字符串附加到dest字符串,strncat同理。

  size_t strlcat(char *, const char *, __kernel_size_t);

  同strncat類似,但結果字符串長度不超過size。

  char * strchr(const char * s ,int c);

  在字符串s中查找c出現的第一個位置

  char * strrchr(const char *,int);

  同上,不過是查找出現的最後的位置

  extern __kernel_size_t strlen(const char *);

  統計一個0結尾字符串長度

  extern __kernel_size_t strnlen(const char *,__kernel_size_t);

  同上,但是統計長度不超過size

  __kernel_size_t strspn(const char * s,const char * accept);

  在s中統計完全由accept中字符組成的字符串長度

  __kernel_size_t strcspn(const char *,const char *reject);

  類似strspn,但統計的是完全不由reject中字符組成的字符串長度

  char * strstr(const char * s1, const char * s2);

  在s1中查找字串s2

  char * strpbrk(const char * cs,const char *ct);

  查找字符串ct中的字符在字符串cs中出現的第一個位置

  char * strsep(char **,const char *);

  將字符串劃分成由ct分割的標記。

  還有一些操作適合於普通的內存區,而非字符串

  memset不多說,memset_io可用於IO區

  char *bcopy(char *dest, const char *src, size_t count)

  void *memcpy(void *dest, const void *src, size_t count)

  這兩個功能相同,不過指針類型memcpy是void而已

  memcpy_fromio同上,不過可以從io區拷貝

  void *memmove(void *dest, const void *src, size_t count)

  同memcpy,不過可以用於重疊的源和目標區域

Copyright © Linux教程網 All Rights Reserved