?? linux 常用c函數(中文版)-內存控制及字符串操作.htm
字號:
<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=memchr(s,'5',10);<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=linuxc47></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>memcmp(比較內存內容) </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 memcmp (const void *s1,const void
*s2,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>memcmp()用來比較s1和s2所指的內存區間前n個字符。字符串大小的比較是以ASCII碼表上的順序來決定,次順序亦為字符的值。memcmp()首先將s1第一個字符值減去s2第一個字符的值,若差為0則再繼續比較下個字符,若差值不為0則將差值返回。例如,字符串"Ac"和"ba"比較則會返回字符'A'(65)和'b'(98)的差值(-33)。<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值。s1若大于s2則返回大于0的值。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>#include<string.h><BR>main()<BR>{<BR>char *a
="aBcDeF";<BR>char *b="AbCdEf";<BR>char *c="aacdef";<BR>char
*d="aBcDeF";<BR>printf("memcmp(a,b):%d\n",memcmp((void*)a,(void*)
b,6));<BR>printf("memcmp(a,c):%d\n",memcmp((void*)a,(void*)
c,6));<BR>printf("memcmp(a,d):%d\n",memcmp((void*)a,(void*)
d,6));<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(a,b):1
/*字符串a>字符串b,返回1*/<BR>memcmp(a,c):-1 /*
字符串a<字符串c,返回-1*/<BR>memcmp(a,d):0 /*字符串a=字符串d,返回0*/<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><BR><FONT face=宋體 size=2><A
name=linuxc48></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>memcpy(拷貝內存內容) </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,memccpy,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 * memcpy (void * dest ,const void
*src, 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>memcpy()用來拷貝src所指的內存內容前n個字節到dest所指的內存地址上。與strcpy()不同的是,memcpy()會完整的復制n個字節,不會因為遇到字符串結束'\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>返回指向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>指針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>#include<string.h><BR>main()<BR>{<BR>char a[30]="string
(a)";<BR>char b[30]="string\0string";<BR>int
i;<BR>strcpy(a,b);<BR>printf("strcpy():");<BR>for(i=0;i<30;i++)<BR>printf("%c",a[i]);<BR>memcpy(a,b,30);<BR>printf("\nmemcpy()
:");<BR>for(i=0;i<30;i++)<BR>printf("%c",a[i]);<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>strcpy() : string a )<BR>memcpy() :
string string<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><BR><FONT face=宋體 size=2><A
name=linuxc49></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>memmove(拷貝內存內容) </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,memccpy,memcpy,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 * memmove(void *dest,const void
*src,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>memmove()與memcpy()一樣都是用來拷貝src所指的內存內容前n個字節到dest所指的地址上。不同的是,當src和dest所指的內存區域重疊時,memmove()仍然可以正確的處理,不過執行效率上會比使用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>返回指向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>指針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>參考memcpy()。<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><BR><FONT face=宋體 size=2><A
name=linuxc50></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>memset(將一段內存空間填入某值) </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,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 * memset (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>memset()會將參數s所指的內存區域前n個字節以參數c填入,然后返回指向s的指針。在編寫程序時,若需要將某一數組作初始化,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>返回指向s的指針。<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>參數c雖聲明為int, 但必須是unsigned char
,所以范圍在0到255之間。<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[30];<BR>memset
(s,'A',sizeof(s));<BR>s[30]='\0';<BR>printf("%s\n",s);<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>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><BR><FONT face=宋體 size=2><A
name=linuxc51></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>rindex(查找字符串中最后一個出現的指定字符)
</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,memchr,strchr,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 * rindex( 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>rindex()用來找出參數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>mian()<BR>{<BR>char *s
="0123456789012345678901234567890";<BR>char
*p;<BR>p=rindex(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>567890<BR></FONT></TD></TR>
<TR>
<TD vAlign=top width=80>
<DIV align=right><BR><FONT face=宋體 size=2><A
name=linuxc52></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>strcasecmp(忽略大小寫比較字符串)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -