?? linux 常用c函數(中文版)-內存控制及字符串操作.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0051)http://net.pku.edu.cn/~yhf/linux_c/function/05.html -->
<HTML><HEAD><TITLE>Untitled Document</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2462.0" name=GENERATOR></HEAD>
<BODY>
<TABLE>
<TBODY>
<TR>
<TD vAlign=top width=80>
<DIV align=right><BR><FONT face=宋體 size=2><A
name=linuxc41></A></FONT></DIV></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2><BR>bcmp(比較內存內容) </FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>相關函數 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>bcmp,strcasecmp,strcmp,strcoll,strncmp,strncasecmp<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>#include<string.h><BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>定義函數 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>int bcmp ( const void *s1,const void *
s2,int n);<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>函數說明 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>bcmp()用來比較s1和s2所指的內存區間前n個字節,若參數n為0,則返回0。<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>若參數s1 和s2 所指的內存內容都完全相同則返回0
值,否則返回非零值。<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>附加說明 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>建議使用memcmp()取代。<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>參考memcmp()。<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><BR><FONT face=宋體 size=2><A
name=linuxc42></A></FONT></DIV></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2><BR>bcopy(拷貝內存內容) </FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>相關函數 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>memccpy,memcpy,memmove,strcpy,ctrncpy<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>#include
<string.h><BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>定義函數 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>void bcopy ( const void *src,void
*dest ,int n);<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>函數說明 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>bcopy()與memcpy()一樣都是用來拷貝src所指的內存內容前n個字節到dest所指的地址,不過參數src與dest在傳給函數時是相反的位置。<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2><BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>附加說明 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>建議使用memcpy()取代<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>#include<string.h><BR>main()<BR>{<BR>char
dest[30]=”string(a)”;<BR>char src[30]=”string\0string”;<BR>int
i;<BR>bcopy(src,dest,30);/* src指針放在前*/<BR>printf(bcopy():
“)<BR>for(i=0;i<30;i++)<BR>printf(“%c”,dest[i]);<BR>memcpy(dest
src,30); /*dest指針放在錢*/<BR>printf(‘\nmemcpy() :
“);<BR>for(i=0;i<30;i++)<BR>printf(“%c”,dest[i]);<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>執行 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>bcopy() : string string<BR>memcpy()
:string sring<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><BR><FONT face=宋體 size=2><A
name=linuxc43></A></FONT></DIV></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2><BR>bzero(將一段內存內容全清為零) </FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>相關函數 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>memset,swab<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>#include<string.h><BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>定義函數 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>void bzero(void *s,int
n);<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>函數說明 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>bzero()會將參數s所指的內存區域前n個字節,全部設為零值。相當于調用memset((void*)s,0,size_tn);<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2><BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>附加說明 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>建議使用memset取代<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>參考memset()。<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><BR><FONT face=宋體 size=2><A
name=linuxc44></A></FONT></DIV></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2><BR>index(查找字符串中第一個出現的指定字符)
</FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>相關函數 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>rindex,srechr,strrchr<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>#include<string.h><BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>定義函數 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>char * index( const char *s, int
c);<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>函數說明 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>index()用來找出參數s字符串中第一個出現的參數c地址,然后將該字符出現的地址返回。字符串結束字符(NULL)也視為字符串一部分。<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>如果找到指定的字符則返回該字符所在地址,否則返回0。<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>#include<string.h><BR>main()<BR>{<BR>char *s
=”0123456789012345678901234567890”;<BR>char *p;<BR>p
=index(s,’5’);<BR>printf(%s\n”,p);<BR>}<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>執行 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>5.68E+25<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><BR><FONT face=宋體 size=2><A
name=linuxc45></A></FONT></DIV></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2><BR>memccpy(拷貝內存內容) </FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>相關函數 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>bcopy,memcpy,memmove,strcpy,strncpy<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>#include<string.h><BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>定義函數 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>void * memccpy(void *dest, const void
* src, int c,size_t n);<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>函數說明 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>memccpy()用來拷貝src所指的內存內容前n個字節到dest所指的地址上。與memcpy()不同的是,memccpy()會在復制時檢查參數c是否出現,若是則返回dest中值為c的下一個字節地址。<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>返回指向dest中值為c的下一個字節指針。返回值為0表示在src所指內存前n個字節中沒有值為c的字節。<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>#include<string.h><BR>main()<BR>{<BR>char
a[]="string[a]";<BR>char
b[]="string(b)";<BR>memccpy(a,b,'B',sizeof(b));<BR>printf("memccpy():%s\n",a);<BR>}<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>執行 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>memccpy():string(b)<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><BR><FONT face=宋體 size=2><A
name=linuxc46></A></FONT></DIV></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2><BR>memchr(在某一內存范圍中查找一特定字符)
</FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>相關函數 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>index,rindex,strchr,strpbrk,strrchr,strsep,strspn,strstr<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>#include<string.h><BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>定義函數 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體 size=2>void * memchr(const void *s,int
c,size_t n);<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><FONT face=宋體 size=2>函數說明 </FONT></DIV></TD>
<TD vAlign=top><FONT face=宋體
size=2>memchr()從頭開始搜尋s所指的內存內容前n個字節,直到發現第一個值為c的字節,則返回指向該字節的指針。<BR></FONT></TD></TR>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -