Linux字串操作函數__安卓

來源:互聯網
上載者:User
[zz]Linux字串操作函數 發表於1年前 (1)strcat(串連兩字串)

相關函數

bcopy,memccpy,memcpy,strcpy,strncpy

標頭檔

#include <string.h>

函數定義

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

函數說明

strcat()會將參數src字串拷貝到參數dest所指的字串尾。第一個參數dest要有足夠的空間來容納要拷貝的字串。

傳回值

返回參數dest的字串起始地址

範例

#include <string.h>

#include <stdio.h>

main()

{

char a[30]="string(1)";

char b[]="string(2)";

printf("before strcat() : %s\n",a);

printf("after strcat() : %s\n",strcat(a,b));

}

執行

before strcat () : string(1)

after strcat () : string(1)string(2)

 

(2)strchr(尋找字串中第一個出現的指定字元)

相關函數

index,memchr,rinex,strbrk,strsep,strspn,strstr,strtok

標頭檔

#include <string.h>

函數定義

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

函數說明

strchr()用來找出參數s字串中第一個出現的參數c地址,然後將該字元出現的地址返回。

傳回值

如果找到指定的字元則返回該字元所在地址,否則返回0。

範例

#include <string.h>

#include <stdio.h>

main()

{

char *s="0123456789012345678901234567890";

char *p;

p=strchr(s,'5');

if (p)

{

printf("%s\n",p);

while ((p) && ( *(p+1) != '\0' ))

{

p=strchr(p+1,'5');

if (p)

{

printf("%s\n",p);

}

}

執行

56789012345678901234567890

5678901234567890

567890

 

(3)strcmp(比較字串)

相關函數

bcmp,memcmp,strcasecmp,strncasecmp,strcoll

標頭檔

#include <string.h>

函數定義

int strcmp(const char *s1,const char *s2);

函數說明

strcmp()用來比較參數s1和s2字串。字串大小的比較是以ASCII 碼錶上的順序來決定,此順序亦為字元的值。strcmp()首先將s1第一個字元值減去s2第一個字元值,若差值為0則再繼續比較下個字元,若差值不為0則將差值返回。例如字串"Ac"和"ba"比較則會返回字元"A"(65)和'b'(98)的差值(-33)。

傳回值

若參數s1和s2字串相同則返回0。s1若大於s2則返回大於0的值。s1若小於s2則返回小於0 的值。

範例

#include <string.h>

#include <stdio.h>

main()

{

char *a="aBcDeF";

char *b="AbCdEf";

char *c="aacdef";

char *d="aBcDeF";

printf("strcmp(a,b) : %d\n",strcmp(a,b));

printf("a-b = %d\n",(*a)-(*b));

printf("strcmp(a,c) : %d\n",strcmp(a,c));

printf("strcmp(a,d) : %d\n",strcmp(a,d));

}

執行

strcmp(a,b) : 1

a-b = 32

strcmp(a,c) : -1

strcmp(a,d) : 0

 

(4)strcoll(採用目前地區的字元排列次序來比較字串)

相關函數

strcmp,bcmp,memcmp,strcasecmp,strncasecmp

標頭檔

#include <string.h>

定義函數

int strcoll( const char *s1, const char *s2);

函數說明

strcoll()會依環境變數LC_COLLATE所指定的文字流向次序來比較s1和s2 字串。

傳回值

若參數s1和s2字串相同則返回0。s1若大於s2則返回大於0的值。s1若小於s2則返回小於0 的值。

附加說明

若LC_COLLATE為"POSIX"或"C",則strcoll()與strcmp()作用完全相同。

範例

參考strcmp()。

 

(5)strcpy(拷貝字串)

相關函數

bcopy,memcpy,memccpy,memmove

標頭檔

#include <string.h>

定義函數

char *strcpy(char *dest,const char *src);

函數說明

strcpy()會將參數src字串拷貝至參數dest所指的地址。

傳回值

返回參數dest的字串起始地址。

附加說明

如果參數dest所指的記憶體空間不夠大,可能會造成緩衝溢出(buffer Overflow)的錯誤情況,在編寫程式時請特別留意,或者用strncpy()來取代。

範例

#include <string.h>

#include <stdio.h>

main()

{

char a[30]="string(1)";

char b[]="string(2)";

printf("before strcpy() :%s\n",a);

printf("after strcpy() :%s\n",strcpy(a,b));

}

執行

before strcpy() :string(1)

after strcpy() :string(2)

(6)strcspn(返回字串中連續不含指定字串內容的字元數)

相關函數

strspn

標頭檔

#include <string.h>

定義函數

size_t strcspn ( const char *s,const char * reject);

函數說明

strcspn()從參數s字串的開頭計算連續的字元,而這些字元都完全不在參數reject 所指的字串中。簡單地說,若strcspn()返回的數值為n,則代表字串s開頭連續有n個字元都不含字串reject內的字元。

傳回值

返回字串s開頭連續不含字串reject內的字元數目。

範例

#include <string.h>

#include <stdio.h>

main()

{

char *str="Linux was first developed for 386/486-based pcs.";

printf("%d\n",strcspn(str," "));

printf("%d\n",strcspn(str,"/-"));

printf("%d\n",strcspn(str,"1234567890"));

}

執行

5

33

30

 

(7)strdup(複製字串)

相關函數

calloc,malloc,realloc,free

表標頭檔

#include <string.h>

定義函數

char * strdup( const char *s);

函數說明

strdup()會先用maolloc()配置與參數s字串相同的空間大小,然後將參數s字串的內容複寫到該記憶體位址,然後把該地址返回。該地址最後可以利用free()來釋放。

傳回值

返回一字串指標,該指標指向複製後的新字串地址。若返回NULL表示記憶體不足。

範例

#include <string.h>

#include <stdio.h>

main()

{

char a[]="strdup";

char *b;

b=strdup(a);

printf("b[ ]="%s"\n",b);

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.