關於字符串類的函數的使用。
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。
關於字符串類的函數的使用。