1. 程式人生 > >關於字符串類的函數的使用。

關於字符串類的函數的使用。

返回 中間 學生管理 string puts compare 子序列 copy 聲明

1.strlen()

strlen所作的僅僅是一個計數器的工作,它從內存的某個位置(可以是字符串開頭,中間某個位置,甚至是某個不確定的內存區域)開始掃描,直到碰到第一個字符串結束符‘\0‘為止,然後返回計數器值(長度不包含‘\0‘)。

例如 char a[]="abcd/0abc" strlen(a)他的值是4.

2.strcmp() (全稱:string compare)

其中:兩個字符串自左向右逐個字符相比(按ASCII值大小相比較),直到出現不同的字符或遇‘\0‘為止 (所以對於我這樣的初學者,只需要用到判定兩個字符串是否相等,即返回值是否為0)

C/C++函數,比較兩個字符串

設這兩個字符串為str1,str2, strcpy(str1,str2)

若str1==str2,則返回零; 顯然這裏用到是判定兩字符串是否相等。

若str1<str2,則返回負數;

若str1>str2,則返回正數。

對於這不等於0的情況,目前我這基礎只適合用來對一些字符串的排序問題。

例如:學生管理系統中名字排序問題(這裏保證學生的名和姓都為字母(‘a‘~‘z‘) first name(名字) last name(姓) 。顯然按照ASCII和strcmp可以解決該類問題。

3.strcpy() (copy)

例如兩個字符串 str1 =hello ,str2=hi 其中str1[100],str2[100],

puts (strcpy(str2,str1)) 輸出結果是 hello

puts (strcpy(str1,str2)) 輸出結果是 hi 因為str2的字符串是"hi/0"進行copy操作的時候,會把/0也進行復制。

註意點:strcpy(str1,str2) 如果str2聲明的長度小於str1的聲明長度,那麽程序會出錯。

4.strcat() //字符串的合並函數

例如兩個字符串str1=“www.” 和str2=“4399.com”

char *p;

p=strcat(str1,str2);

puts(s); 結果輸出 www.4399.com

5.strstr (str1,str2) //在str1中查找str2,即查找子序列。

若str1中存在str2那麽返回值將會是在str1中的子序列str2的首地址。

若不存在,這返回NULL。

關於字符串類的函數的使用。