﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-书呆子 的 notepad-随笔分类-数据结构与算法</title><link>http://www.cppblog.com/GUO/category/13961.html</link><description>   look to the master,
    follow the master,
    walk with the master,
    see through the master,
    become the master.</description><language>zh-cn</language><lastBuildDate>Mon, 13 Sep 2010 20:56:13 GMT</lastBuildDate><pubDate>Mon, 13 Sep 2010 20:56:13 GMT</pubDate><ttl>60</ttl><item><title>字符串反回首字母大写</title><link>http://www.cppblog.com/GUO/archive/2010/09/13/126528.html</link><dc:creator>书呆子</dc:creator><author>书呆子</author><pubDate>Mon, 13 Sep 2010 13:26:00 GMT</pubDate><guid>http://www.cppblog.com/GUO/archive/2010/09/13/126528.html</guid><wfw:comment>http://www.cppblog.com/GUO/comments/126528.html</wfw:comment><comments>http://www.cppblog.com/GUO/archive/2010/09/13/126528.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/GUO/comments/commentRss/126528.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/GUO/services/trackbacks/126528.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdlib.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;flag&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">用flag来判断是不是一个新的单词</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;a[</span><span style="color: #000000;">100</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;gets(a);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;a[i]&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(a[i]&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">((flag&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">)</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">(a[i]</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">97</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">a[i]</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">122</span><span style="color: #000000;">))&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">a&nbsp;&lt;--&gt;&nbsp;z</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]</span><span style="color: #000000;">=</span><span style="color: #000000;">a[i]</span><span style="color: #000000;">-</span><span style="color: #000000;">32</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">转换为A&nbsp;&lt;--&gt;&nbsp;Z&nbsp;的ASCII值&nbsp;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;puts(a);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}<br></span></div>
<br>运行结果：<br><img  src="http://www.cppblog.com/images/cppblog_com/guo/change.jpg" border="0"><br><br>附<br>1.ASCII表：<br><img src="http://www.cppblog.com/images/cppblog_com/guo/asciifull.gif" border="0"><br><br>2.扩展：<br><img src="http://www.cppblog.com/images/cppblog_com/guo/extend.gif" border="0"><br><br> <img src ="http://www.cppblog.com/GUO/aggbug/126528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/GUO/" target="_blank">书呆子</a> 2010-09-13 21:26 <a href="http://www.cppblog.com/GUO/archive/2010/09/13/126528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]C库函数中字符串处理函数集合</title><link>http://www.cppblog.com/GUO/archive/2010/09/13/126522.html</link><dc:creator>书呆子</dc:creator><author>书呆子</author><pubDate>Mon, 13 Sep 2010 11:46:00 GMT</pubDate><guid>http://www.cppblog.com/GUO/archive/2010/09/13/126522.html</guid><wfw:comment>http://www.cppblog.com/GUO/comments/126522.html</wfw:comment><comments>http://www.cppblog.com/GUO/archive/2010/09/13/126522.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/GUO/comments/commentRss/126522.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/GUO/services/trackbacks/126522.html</trackback:ping><description><![CDATA[原文：<a style="color: #ff0000;" target="_blank"  href="http://blog.csdn.net/General1982/archive/2009/03/21/4012566.aspx">http://blog.csdn.net/General1982/archive/2009/03/21/4012566.aspx
</a><br><br>
<div>
<p>bcmp</p>
<p>原型：extern int bcmp(const void *s1, const void *s2, int n);<br>用法：#include &lt;string.h&gt;<br>功能：比较字符串s1和s2的前n个字节是否相等<br>说明：如果s1=s2或n=0则返回零，否则返回非零值。bcmp不检查NULL。</p>
<p>bcopy&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>原型：extern void bcopy(const void *src, void *dest, int n);<br>用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：将字符串src的前n个字节复制到dest中<br>&nbsp;&nbsp; 说明：bcopy不检查字符串中的空字节NULL，函数没有返回值。</p>
<p>bzero</p>
<p>&nbsp;&nbsp; 原型：extern void bzero(void *s, int n);<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：置字节字符串s的前n个字节为零。<br>&nbsp;&nbsp; 说明：bzero无返回值。</p>
<p>memccpy&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp; 原型：extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：由src所指内存区域复制不多于count个字节到dest所指内存区域，如果遇到字符ch则停止复制。<br>&nbsp;&nbsp; 说明：返回指向字符ch后的第一个字符的指针，如果src前n个字节中不存在ch则返回NULL。ch被复制。<br>&nbsp;&nbsp;<br>memchr&nbsp;&nbsp;<br><br>&nbsp;&nbsp; 原型：extern void *memchr(void *buf, char ch, unsigned count);<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：从buf所指内存区域的前count个字节查找字符ch。 <br>&nbsp;&nbsp; 说明：当第一次遇到字符ch时停止查找。如果成功，返回指向字符ch的指针；否则返回NULL。</p>
<p>memcmp</p>
<p>&nbsp;&nbsp; 原型：extern int memcmp(void *buf1, void *buf2, unsigned int count);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：比较内存区域buf1和buf2的前count个字节。 <br>&nbsp;&nbsp; 说明：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当buf1&lt;buf2时，返回值&lt;0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当buf1=buf2时，返回值=0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当buf1&gt;buf2时，返回值&gt;0</p>
<p>memcpy</p>
<p>&nbsp;&nbsp; 原型：extern void *memcpy(void *dest, void *src, unsigned int count);<br>用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：由src所指内存区域复制count个字节到dest所指内存区域。<br>&nbsp;&nbsp; 说明：src和dest所指内存区域不能重叠，函数返回指向dest的指针。</p>
<p>memicmp <br>&nbsp;&nbsp;<br>&nbsp;&nbsp; 原型：extern int memicmp(void *buf1, void *buf2, unsigned int count);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：比较内存区域buf1和buf2的前count个字节但不区分字母的大小写。<br>&nbsp;&nbsp; 说明：memicmp同memcmp的唯一区别是memicmp不区分大小写字母。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当buf1&lt;buf2时，返回值&lt;0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当buf1=buf2时，返回值=0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当buf1&gt;buf2时，返回值&gt;0<br><br>memmove <br>&nbsp;&nbsp;<br>&nbsp;&nbsp; 原型：extern void *memmove(void *dest, const void *src, unsigned int count);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：由src所指内存区域复制count个字节到dest所指内存区域。<br>&nbsp;&nbsp; 说明：src和dest所指内存区域可以重叠，但复制后src内容会被更改。函数返回指向dest的指针。</p>
<p>memset</p>
<p>&nbsp;&nbsp; 原型：extern void *memset(void *buffer, int c, int count);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：把buffer所指内存区域的前count个字节设置成字符c。<br>&nbsp;&nbsp; 说明：返回指向buffer的指针。</p>
<p>movmem&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp; 原型：extern void movmem(void *src, void *dest, unsigned int count);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：由src所指内存区域复制count个字节到dest所指内存区域。<br>&nbsp;&nbsp; 说明：src和dest所指内存区域可以重叠，但复制后src内容会被更改。函数返回指向dest的指针。<br><br>setmem</p>
<p>&nbsp;&nbsp; 原型：extern void setmem(void *buf, unsigned int count, char ch);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：把buf所指内存区域前count个字节设置成字符ch。<br>&nbsp;&nbsp; 说明：返回指向buf的指针。</p>
<p>stpcpy <br>&nbsp;&nbsp;<br>&nbsp;&nbsp; 原型：extern char *stpcpy(char *dest,char *src);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：把src所指由NULL结束的字符串复制到dest所指的数组中。<br>&nbsp;&nbsp; 说明：src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回指向dest结尾处字符(NULL)的指针。</p>
<p>strcat</p>
<p>&nbsp;&nbsp; 原型：extern char *strcat(char *dest,char *src);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。<br>&nbsp;&nbsp; 说明：src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回指向dest的指针。</p>
<p>strchr&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp; 原型：extern char *strchr(char *s,char c);&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt; <br>&nbsp;&nbsp; 功能：查找字符串s中首次出现字符c的位置<br>&nbsp;&nbsp; 说明：返回首次出现c的位置的指针，如果s中不存在c则返回NULL。<br>&nbsp;&nbsp;<br>strcmp <br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 原型：extern int strcmp(char *s1,char * s2);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：比较字符串s1和s2。<br>&nbsp;&nbsp; 说明：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当s1&lt;s2时，返回值&lt;0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当s1=s2时，返回值=0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当s1&gt;s2时，返回值&gt;0</p>
<p>stricmp,strcmpi&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp; 原型：extern int stricmp(char *s1,char * s2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：比较字符串s1和s2，但不区分字母的大小写。<br>&nbsp;&nbsp; 说明：strcmpi是到stricmp的宏定义，实际未提供此函数。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当s1&lt;s2时，返回值&lt;0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当s1=s2时，返回值=0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当s1&gt;s2时，返回值&gt;0</p>
<p>strcpy <br>&nbsp;&nbsp;<br>&nbsp;&nbsp; 原型：extern char *strcpy(char *dest,char *src);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：把src所指由NULL结束的字符串复制到dest所指的数组中。 <br>&nbsp;&nbsp; 说明：src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回指向dest的指针。</p>
<p>strcspn</p>
<p>&nbsp;&nbsp; 原型：extern int strcspn(char *s1,char *s2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：在字符串s1中搜寻s2中所出现的字符。<br>&nbsp;&nbsp; 说明：返回第一个出现的字符在s1中的下标值，亦即在s1中出现而s2中没有出现的子串的长度。</p>
<p>strdup <br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 原型：extern char *strdup(char *s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：复制字符串s<br>&nbsp;&nbsp; 说明：返回指向被复制的字符串的指针，所需空间由malloc()分配且可以由free()释放。<br><br>strlen <br>&nbsp;&nbsp;<br>&nbsp;&nbsp; 原型：extern int strlen(char *s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：计算字符串s的长度<br>&nbsp;&nbsp; 说明：返回s的长度，不包括结束符NULL。</p>
<p>strlwr</p>
<p>&nbsp;&nbsp; 原型：extern char *strlwr(char *s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：将字符串s转换为小写形式<br>&nbsp;&nbsp; 说明：只转换s中出现的大写字母，不改变其它字符。返回指向s的指针。</p>
<p><br>strncat</p>
<p>&nbsp;&nbsp; 原型：extern char *strncat(char *dest,char *src,int n);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。<br>&nbsp;&nbsp; 说明：src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回指向dest的指针。</p>
<p>strncmp</p>
<p>&nbsp;&nbsp; 原型：extern int strcmp(char *s1,char * s2，int n);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：比较字符串s1和s2的前n个字符。<br>&nbsp;&nbsp; 说明：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当s1&lt;s2时，返回值&lt;0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当s1=s2时，返回值=0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当s1&gt;s2时，返回值&gt;0</p>
<p>strnicmp,strncmpi</p>
<p>&nbsp;&nbsp; 原型：extern int strnicmp(char *s1,char * s2，int n);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt; <br>&nbsp;&nbsp; 功能：比较字符串s1和s2的前n个字符但不区分大小写。<br>&nbsp;&nbsp; 说明：strncmpi是到strnicmp的宏定义<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当s1&lt;s2时，返回值&lt;0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当s1=s2时，返回值=0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当s1&gt;s2时，返回值&gt;0</p>
<p>strncpy <br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 原型：extern char *strncpy(char *dest, char *src, int n);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。<br>&nbsp;&nbsp; 说明：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果src的前n个字节不含NULL字符，则结果不会以NULL字符结束。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果src的长度小于n个字节，则以NULL填充dest直到复制完n个字节。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回指向dest的指针。</p>
<p>strpbrk</p>
<p>&nbsp;&nbsp; 原型：extern char *strpbrk(char *s1, char *s2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;&nbsp;&nbsp;<br>&nbsp;&nbsp; 功能：在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置，空字符NULL不包括在内。&nbsp;&nbsp;<br>&nbsp;&nbsp; 说明：返回指向s1中第一个相匹配的字符的指针，如果没有匹配字符则返回空指针NULL。</p>
<p>strrev <br>&nbsp;&nbsp;<br>&nbsp;&nbsp; 原型：extern char *strrev(char *s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt; <br>&nbsp;&nbsp; 功能：把字符串s的所有字符的顺序颠倒过来（不包括空字符NULL）。<br>&nbsp;&nbsp; 说明：返回指向颠倒顺序后的字符串指针。</p>
<p>strset</p>
<p>&nbsp;&nbsp; 原型：extern char *strset(char *s, char c);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：把字符串s中的所有字符都设置成字符c。<br>&nbsp;&nbsp; 说明：返回指向s的指针。</p>
<p>strstr</p>
<p>&nbsp;&nbsp; 原型：extern char *strstr(char *haystack, char *needle);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：从字符串haystack中寻找needle第一次出现的位置（不比较结束符NULL)。<br>&nbsp;&nbsp; 说明：返回指向第一次出现needle位置的指针，如果没找到则返回NULL。<br><br>strtok</p>
<p>&nbsp;&nbsp; 原型：extern char *strtok(char *s, char *delim);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：分解字符串为一组标记串。s为要分解的字符串，delim为分隔符字符串。<br>&nbsp;&nbsp; 说明：首次调用时，s必须指向要分解的字符串，随后调用要把s设成NULL。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strtok在s中查找包含在delim中的字符并用NULL('\0')来替换，直到找遍整个字符串。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回指向下一个标记串。当没有标记串时则返回空字符NULL。</p>
<p>strupr</p>
<p>&nbsp;&nbsp; 原型：extern char *strupr(char *s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 用法：#include &lt;string.h&gt;<br>&nbsp;&nbsp; 功能：将字符串s转换为大写形式<br>&nbsp;&nbsp; 说明：只转换s中出现的小写字母，不改变其它字符。返回指向s的指针。</p>
</div>
<br><br><img src ="http://www.cppblog.com/GUO/aggbug/126522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/GUO/" target="_blank">书呆子</a> 2010-09-13 19:46 <a href="http://www.cppblog.com/GUO/archive/2010/09/13/126522.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>字符串循环移位问题</title><link>http://www.cppblog.com/GUO/archive/2010/09/13/126521.html</link><dc:creator>书呆子</dc:creator><author>书呆子</author><pubDate>Mon, 13 Sep 2010 11:40:00 GMT</pubDate><guid>http://www.cppblog.com/GUO/archive/2010/09/13/126521.html</guid><wfw:comment>http://www.cppblog.com/GUO/comments/126521.html</wfw:comment><comments>http://www.cppblog.com/GUO/archive/2010/09/13/126521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/GUO/comments/commentRss/126521.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/GUO/services/trackbacks/126521.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdlib.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br>//向右循环移位<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;loopmover&nbsp;(&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;pstr,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;steps&nbsp;)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;strlen(pstr)&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;steps;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">buff</span><span style="color: #000000;">=</span><span style="color: #000000;">(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc(strlen(pstr)</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;strcpy(buff,pstr</span><span style="color: #000000;">+</span><span style="color: #000000;">n);<br>&nbsp;&nbsp;&nbsp;&nbsp;strncat(buff,pstr,n);<br>&nbsp;&nbsp;&nbsp;&nbsp;buff[strlen(pstr)]</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">\0</span><span style="color: #000000;">'</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;strcpy(pstr,buff);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;free(buff);<br>}<br><br>//向左循环移位
<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;loopmovel&nbsp;(&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;pstr,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;steps&nbsp;)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">buff</span><span style="color: #000000;">=</span><span style="color: #000000;">(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc(strlen(pstr)</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;strcpy(buff,pstr</span><span style="color: #000000;">+</span><span style="color: #000000;">steps);<br>&nbsp;&nbsp;&nbsp;&nbsp;strncat(buff,pstr,steps);<br>&nbsp;&nbsp;&nbsp;&nbsp;buff[strlen(pstr)]</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">\0</span><span style="color: #000000;">'</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;strcpy(pstr,&nbsp;buff);&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;free(buff);<br>}<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;a[]</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">abcdefg123456</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%s\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,a);<br>&nbsp;&nbsp;&nbsp;&nbsp;loopmover(a,</span><span style="color: #000000;">5</span><span style="color: #000000;">);//右移5位<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%s\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,a);<br>&nbsp;&nbsp;&nbsp;&nbsp;loopmovel(a,</span><span style="color: #000000;">5</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%s\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,a);<br>&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}<br></span></div>
<br>运行结果：<br><img src="http://www.cppblog.com/images/cppblog_com/guo/move.jpg" border="0"><br><br>
<h4 class="TextColor1" style="margin-bottom: 0px; font-weight: normal;">C库函数中字符串处理函数集合：</h4>
<a style="color: #ff0000;" target="_blank"  href="http://www.cppblog.com/GUO/archive/2010/09/13/126522.html">http://www.cppblog.com/GUO/archive/2010/09/13/126522.html
</a><br>  <img src ="http://www.cppblog.com/GUO/aggbug/126521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/GUO/" target="_blank">书呆子</a> 2010-09-13 19:40 <a href="http://www.cppblog.com/GUO/archive/2010/09/13/126521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]单链表反转问题</title><link>http://www.cppblog.com/GUO/archive/2010/09/12/126487.html</link><dc:creator>书呆子</dc:creator><author>书呆子</author><pubDate>Sun, 12 Sep 2010 15:57:00 GMT</pubDate><guid>http://www.cppblog.com/GUO/archive/2010/09/12/126487.html</guid><wfw:comment>http://www.cppblog.com/GUO/comments/126487.html</wfw:comment><comments>http://www.cppblog.com/GUO/archive/2010/09/12/126487.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/GUO/comments/commentRss/126487.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/GUO/services/trackbacks/126487.html</trackback:ping><description><![CDATA[原文：<a style="color: #ff0000;" target="_blank" href="http://nkshili.spaces.live.com/blog/cns%21BB418D20B454CBE7%211489.entry">http://nkshili.spaces.live.com/blog/cns!BB418D20B454CBE7!1489.entry
</a><br><br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">/*<br>两种方法，一种是直接把每个位置都倒转，最后头节点指向本来是尾巴的节点，另一个是每次拿到一个节点都插入到头节点后。<br>*/<br></span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdlib.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span>//结点类型定义 <br>typedef struct Node<br>{<br>&nbsp;&nbsp;&nbsp; int number;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //数据域 <br>&nbsp;&nbsp;&nbsp; struct Node *next; //指针域 <br>}*PtrNode
<span style="color: #000000;"><br><br>//第一个方法：<br><br>void&nbsp;reverse_link_1(PtrNode&nbsp;link)<br>{<br>
<div style="margin-left: 40px;">PtrNode&nbsp;first,second,ptr;<br>if(link-&gt;next==NULL)<br>{<br>
<div style="margin-left: 40px;">return;<br></div>
}<br>ptr=link-&gt;next;<br>first=ptr-&gt;next;<br>ptr-&gt;next=NULL;<br>while(ptr!=NULL)<br>{<br>
<div style="margin-left: 40px;">if(first==NULL)<br>{<br>
<div style="margin-left: 40px;">link-&gt;next=ptr;<br>break;<br></div>
}<br>else<br>{<br>
<div style="margin-left: 40px;">second=first-&gt;next;<br>first-&gt;next=ptr;<br>ptr=first;<br>first=second;<br></div>
}<br></div>
}<br></div>
}<br><br>//第二个方法：<br><br>void&nbsp;reverse_link_2(PtrNode&nbsp;link)<br>{<br>
<div style="margin-left: 40px;">PtrNode&nbsp;ptr,temp;<br>if(link-&gt;next==NULL)<br>{<br>
<div style="margin-left: 40px;">return;<br></div>
}<br>ptr=link-&gt;next;<br>while(ptr-&gt;next!=NULL)<br>{<br>
<div style="margin-left: 40px;">temp=ptr-&gt;next;<br>ptr-&gt;next=ptr-&gt;next-&gt;next;<br>temp-&gt;next=link-&gt;next;<br>link-&gt;next=temp;<br></div>
}<br></div>
}
<br><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;fill_link(PtrNode&nbsp;link)<br>{<br></span>
<div style="margin-left: 40px;"><span style="color: #000000;">PtrNode&nbsp;ptr,temp;</span><br><span style="color: #000000;"></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i;</span><br><span style="color: #000000;">ptr</span><span style="color: #000000;">=</span><span style="color: #000000;">link;</span><br><span style="color: #000000;"></span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">10</span><span style="color: #000000;">;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)</span><br><span style="color: #000000;">{</span><br>
<div style="margin-left: 40px;"><span style="color: #000000;">temp</span><span style="color: #000000;">=</span><span style="color: #000000;">(PtrNode)malloc(</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Node));</span><br><span style="color: #000000;">temp</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">number</span><span style="color: #000000;">=</span><span style="color: #000000;">i;</span><br><span style="color: #000000;">temp</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next</span><span style="color: #000000;">=</span><span style="color: #000000;">NULL;</span><br><span style="color: #000000;">ptr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next</span><span style="color: #000000;">=</span><span style="color: #000000;">temp;</span><br><span style="color: #000000;">ptr</span><span style="color: #000000;">=</span><span style="color: #000000;">ptr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;</span><br></div>
<span style="color: #000000;">}</span><br><span style="color: #000000;"></span></div>
<span style="color: #000000;">}<br><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;print_link(PtrNode&nbsp;link)<br>{<br></span>
<div style="margin-left: 40px;"><span style="color: #000000;">PtrNode&nbsp;ptr</span><span style="color: #000000;">=</span><span style="color: #000000;">link</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;</span><br><span style="color: #000000;">printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">Link:\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span><br><span style="color: #000000;"></span><span style="color: #0000ff;">while</span><span style="color: #000000;">(ptr</span><span style="color: #000000;">!=</span><span style="color: #000000;">NULL)</span><br><span style="color: #000000;">{</span><br>
<div style="margin-left: 40px;"><span style="color: #000000;">printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d\t</span><span style="color: #000000;">"</span><span style="color: #000000;">,ptr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">number);</span><br><span style="color: #000000;">ptr</span><span style="color: #000000;">=</span><span style="color: #000000;">ptr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;</span><br></div>
<span style="color: #000000;">}</span><br><span style="color: #000000;">printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span><br><span style="color: #000000;"></span></div>
<span style="color: #000000;">}<br><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;free_link(PtrNode&nbsp;link)<br>{<br></span>
<div style="margin-left: 40px;"><span style="color: #000000;">PtrNode&nbsp;ptr</span><span style="color: #000000;">=</span><span style="color: #000000;">link;</span><br><span style="color: #000000;"></span><span style="color: #0000ff;">while</span><span style="color: #000000;">(ptr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next</span><span style="color: #000000;">!=</span><span style="color: #000000;">NULL)</span><br><span style="color: #000000;">{</span><br>
<div style="margin-left: 40px;"><span style="color: #000000;">PtrNode&nbsp;temp</span><span style="color: #000000;">=</span><span style="color: #000000;">ptr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;</span><br><span style="color: #000000;">ptr</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next</span><span style="color: #000000;">=</span><span style="color: #000000;">temp</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;</span><br><span style="color: #000000;">free(temp);</span><br></div>
<span style="color: #000000;">}</span><br><span style="color: #000000;"></span></div>
<span style="color: #000000;">}<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{<br></span>
<div style="margin-left: 40px;"><span style="color: #000000;">PtrNode&nbsp;head;</span><br><span style="color: #000000;">head</span><span style="color: #000000;">=</span><span style="color: #000000;">(PtrNode)malloc(</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Node));</span><br><span style="color: #000000;">head</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next</span><span style="color: #000000;">=</span><span style="color: #000000;">NULL;</span><br><span style="color: #000000;">head</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">number</span><span style="color: #000000;">=-</span><span style="color: #000000;">1</span><span style="color: #000000;">;</span><br><span style="color: #000000;">fill_link(head);</span><br>
<div style="margin-left: 40px;"><span style="color: #000000;">print_link(head);</span><br></div>
<span style="color: #000000;">reverse_link_1(head);</span><br>
<div style="margin-left: 40px;"><span style="color: #000000;">print_link(head);</span><br></div>
<span style="color: #000000;">reverse_link_2(head);</span><br>
<div style="margin-left: 40px;"><span style="color: #000000;">print_link(head);</span><br></div>
<span style="color: #000000;">free_link(head);</span><br>
<div style="margin-left: 40px;"><span style="color: #000000;">print_link(head);</span><br></div>
<span style="color: #000000;">free(head);</span><br>system("PAUSE");<br><span style="color: #000000;"></span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;</span><br><span style="color: #000000;"></span></div>
<span style="color: #000000;">}<br>运行结果:<br></span></div>
<div style="text-align: left;"><img src="http://www.cppblog.com/images/cppblog_com/guo/reverse.jpg" border="0"><br>     </div><img src ="http://www.cppblog.com/GUO/aggbug/126487.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/GUO/" target="_blank">书呆子</a> 2010-09-12 23:57 <a href="http://www.cppblog.com/GUO/archive/2010/09/12/126487.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>括号匹配问题(C++、堆栈)</title><link>http://www.cppblog.com/GUO/archive/2010/09/12/126483.html</link><dc:creator>书呆子</dc:creator><author>书呆子</author><pubDate>Sun, 12 Sep 2010 15:11:00 GMT</pubDate><guid>http://www.cppblog.com/GUO/archive/2010/09/12/126483.html</guid><wfw:comment>http://www.cppblog.com/GUO/comments/126483.html</wfw:comment><comments>http://www.cppblog.com/GUO/archive/2010/09/12/126483.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/GUO/comments/commentRss/126483.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/GUO/services/trackbacks/126483.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008000;">/*</span><span style="color: #008000;"><br>括号匹配问题，比较经典，利用堆栈来实现(摘自internet)<br><br>1.&nbsp;括号匹配的四种可能性：<br><br>①左右括号配对次序不正确<br>②右括号多于左括号<br>③左括号多于右括号<br>④左右括号匹配正确<br><br>2.&nbsp;算法思想：<br><br>顺序扫描算数表达式（表现为一个字符串），当遇到三种类型的左括号时候让该括号进栈；<br>当扫描到某一种类型的右括号时，比较当前栈顶元素是否与之匹配，若匹配，退栈继续判断；<br>若当前栈顶元素与当前扫描的括号不匹配，则左右括号配对次序不正确；<br>若字符串当前为某种类型的右括号而堆栈已经空，则右括号多于左括号；<br>字符串循环扫描结束时，若堆栈非空（即堆栈尚有某种类型的左括号），则说明左括号多于右括号；<br>否则，括号配对正确。<br><br>3.&nbsp;程序实现：<br></span><span style="color: #008000;">*/</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;std;<br><br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;maxsize&nbsp;100</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;sStack<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;sign[maxsize];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;top;<br>};<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;InitsStack(sStack&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">SS)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SS.top</span><span style="color: #000000;">=-</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>}<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;IsEmptysStack(sStack&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">SS)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(SS.top</span><span style="color: #000000;">==-</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br></span><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;PushsStack(sStack&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">SS,</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;c)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SS.sign[</span><span style="color: #000000;">++</span><span style="color: #000000;">SS.top]</span><span style="color: #000000;">=</span><span style="color: #000000;">c;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>}<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;UpsStack(sStack&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">SS)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(IsEmptysStack(SS))<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">栈空</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;SS.top</span><span style="color: #000000;">--</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>}<br><br></span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;TopsStack(sStack&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">SS)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(IsEmptysStack&nbsp;(SS))<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">栈空</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;SS.sign[SS.top];<br>}<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;s;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">输入表达式：</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">s;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;length</span><span style="color: #000000;">=</span><span style="color: #000000;">s.length();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sStack&nbsp;SS;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitsStack(SS);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">length;</span><span style="color: #000000;">++</span><span style="color: #000000;">i)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(s[i]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">(</span><span style="color: #000000;">'</span><span style="color: #000000;">||</span><span style="color: #000000;">s[i]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">[</span><span style="color: #000000;">'</span><span style="color: #000000;">||</span><span style="color: #000000;">s[i]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">{</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PushsStack(SS,s[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(s[i]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">)</span><span style="color: #000000;">'</span><span style="color: #000000;">&amp;&amp;!</span><span style="color: #000000;">IsEmptysStack(SS)</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">TopsStack(SS)</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">(</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpsStack(SS);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(s[i]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">)</span><span style="color: #000000;">'</span><span style="color: #000000;">&amp;&amp;!</span><span style="color: #000000;">IsEmptysStack(SS)</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">TopsStack(SS)</span><span style="color: #000000;">!=</span><span style="color: #000000;">'</span><span style="color: #000000;">(</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">括号匹配次序不正确</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(s[i]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">]</span><span style="color: #000000;">'</span><span style="color: #000000;">&amp;&amp;!</span><span style="color: #000000;">IsEmptysStack(SS)</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">TopsStack(SS)</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">[</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpsStack(SS);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(s[i]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">]</span><span style="color: #000000;">'</span><span style="color: #000000;">&amp;&amp;!</span><span style="color: #000000;">IsEmptysStack(SS)</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">TopsStack(SS)</span><span style="color: #000000;">!=</span><span style="color: #000000;">'</span><span style="color: #000000;">[</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">括号匹配次序不正确</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(s[i]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">}</span><span style="color: #000000;">'</span><span style="color: #000000;">&amp;&amp;!</span><span style="color: #000000;">IsEmptysStack(SS)</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">TopsStack(SS)</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">{</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpsStack(SS);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(s[i]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">}</span><span style="color: #000000;">'</span><span style="color: #000000;">&amp;&amp;!</span><span style="color: #000000;">IsEmptysStack(SS)</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">TopsStack(SS)</span><span style="color: #000000;">!=</span><span style="color: #000000;">'</span><span style="color: #000000;">{</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">括号匹配次序不正确</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">((s[i]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">)</span><span style="color: #000000;">'</span><span style="color: #000000;">||</span><span style="color: #000000;">s[i]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">]</span><span style="color: #000000;">'</span><span style="color: #000000;">||</span><span style="color: #000000;">s[i]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">}</span><span style="color: #000000;">'</span><span style="color: #000000;">)</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">IsEmptysStack(SS))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">右括号多于左括号</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">IsEmptysStack(SS))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">左括号多于右括号</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">(length</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">)</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">IsEmptysStack(SS))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">括号匹配正确</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000;">"</span><span style="color: #000000;">PAUSE</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}<br></span></div>
<br>     <img src ="http://www.cppblog.com/GUO/aggbug/126483.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/GUO/" target="_blank">书呆子</a> 2010-09-12 23:11 <a href="http://www.cppblog.com/GUO/archive/2010/09/12/126483.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]C++头文件包含内容概览</title><link>http://www.cppblog.com/GUO/archive/2010/09/10/126300.html</link><dc:creator>书呆子</dc:creator><author>书呆子</author><pubDate>Fri, 10 Sep 2010 04:44:00 GMT</pubDate><guid>http://www.cppblog.com/GUO/archive/2010/09/10/126300.html</guid><wfw:comment>http://www.cppblog.com/GUO/comments/126300.html</wfw:comment><comments>http://www.cppblog.com/GUO/archive/2010/09/10/126300.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/GUO/comments/commentRss/126300.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/GUO/services/trackbacks/126300.html</trackback:ping><description><![CDATA[原文：<a style="color: #ff0000;" target="_blank"  href="http://developer.51cto.com/art/201002/183607.htm">http://developer.51cto.com/art/201002/183607.htm</a><br><br>
<div class="sum">
<ul class="summary">我们在这里主要从C、传统 C++；标准 C++以及C99 增加等方面来为大家总结了C++头文件的各种类型，以方便大家将来的应用。</ul>
    </div>
    <p><a href="http://developer.51cto.com/art/200709/56340.htm">C++</a>中对于头文件的应用是一个比较复杂的步骤，其中有很多比较重要的内容值得我们去不断的学习。在这里我们先来为大家总结一下C++头文件中的各种类型，以方便大家将来的应用。</p>
    <br>
    <p><strong> C++头文件之C、传统 C++ </strong> </p>
    <ol class="dp-xml">
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">assert.h&gt;</font></strong> //设定插入点&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">ctype.h&gt;</font></strong> &nbsp;//字符处理&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">errno.h&gt;</font></strong> &nbsp;//定义错误码&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">float.h&gt;</font></strong> &nbsp;//浮点数处理&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">fstream.h&gt;</font></strong> 　&nbsp;//文件输入／输出&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">iomanip.h&gt;</font></strong> 　&nbsp;//参数化输入／输出&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">iostream.h&gt;</font></strong> 　//数据流输入／输出&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">limits.h&gt;</font></strong> //定义各种数据类型最值常量&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">locale.h&gt;</font></strong> //定义本地化函数&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">math.h&gt;</font></strong> 　//定义数学函数&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">stdio.h&gt;</font></strong> &nbsp;//定义输入／输出函数&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">stdlib.h&gt;</font></strong> //定义杂项函数及内存分配函数&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">string.h&gt;</font></strong> //字符串处理&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">strstrea.h&gt;</font></strong> 　//基于数组的输入／输出&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">time.h&gt;</font></strong> 　//定义关于时间的函数&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">wchar.h&gt;</font></strong> &nbsp;//宽字符处理及输入／输出&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">wctype.h&gt;</font></strong> //宽字符分类&nbsp;&nbsp;</li>
    </ol>
    <p><strong> C++头文件之标准 C++　（同上的不再注释） </strong> </p>
    <ol class="dp-xml">
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">algorithm&gt;</font></strong> 　&nbsp;//STL&nbsp;通用算法&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">bitset&gt;</font></strong> 　//STL&nbsp;位集容器&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">cctype&gt;</font></strong> &nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">cerrno&gt;</font></strong> &nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">clocale&gt;</font></strong> &nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">cmath&gt;</font></strong> &nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">complex&gt;</font></strong> &nbsp;//复数类&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">cstdio&gt;</font></strong> &nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">cstdlib&gt;</font></strong> &nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">cstring&gt;</font></strong> &nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">ctime&gt;</font></strong> &nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">deque&gt;</font></strong> 　&nbsp;//STL&nbsp;双端队列容器&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">exception&gt;</font></strong> 　&nbsp;//异常处理类&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">fstream&gt;</font></strong> &nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">functional&gt;</font></strong> 　//STL&nbsp;定义运算函数（代替运算符）&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">limits&gt;</font></strong> &nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">list&gt;</font></strong> //STL&nbsp;线性列表容器&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">map&gt;</font></strong> &nbsp;//STL&nbsp;映射容器&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">iomanip&gt;</font></strong> &nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">ios&gt;</font></strong> &nbsp;//基本输入／输出支持&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">iosfwd&gt;</font></strong> 　//输入／输出系统使用的前置声明&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">iostream&gt;</font></strong> &nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">istream&gt;</font></strong> &nbsp;//基本输入流&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">ostream&gt;</font></strong> &nbsp;//基本输出流&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">queue&gt;</font></strong> 　&nbsp;//STL&nbsp;队列容器&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">set&gt;</font></strong> &nbsp;//STL&nbsp;集合容器&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">sstream&gt;</font></strong> &nbsp;//基于字符串的流&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">stack&gt;</font></strong> 　&nbsp;//STL&nbsp;堆栈容器&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">stdexcept&gt;</font></strong> 　&nbsp;//标准异常类&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">streambuf&gt;</font></strong> 　&nbsp;//底层输入／输出支持&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">string&gt;</font></strong> 　//字符串类&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">utility&gt;</font></strong> &nbsp;//STL&nbsp;通用模板类&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">vector&gt;</font></strong> 　//STL&nbsp;动态数组容器&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">cwchar&gt;</font></strong> &nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">cwctype&gt;</font></strong> &nbsp; &nbsp;</li>
        <li>using&nbsp;namespace&nbsp;std;&nbsp;&nbsp;</li>
    </ol>
    <p><strong> C++头文件之C99 增加 </strong> </p>
    <ol class="dp-xml">
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">complex.h&gt;</font></strong> &nbsp;//复数处理&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">fenv.h&gt;</font></strong> //浮点环境&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">inttypes.h&gt;</font></strong> //整数格式转换&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">stdbool.h&gt;</font></strong> &nbsp;//布尔环境&nbsp; &nbsp;</li>
        <li class="alt">#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">stdint.h&gt;</font></strong> 　//整型环境&nbsp; &nbsp;</li>
        <li>#include&nbsp;<strong> <font color="#006699">&lt;</font></strong> &nbsp;<strong> <font color="#006699">tgmath.h&gt;</font></strong> 　//通用类型数学宏&nbsp; <br></li>
    </ol>
    <br><br><img src ="http://www.cppblog.com/GUO/aggbug/126300.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/GUO/" target="_blank">书呆子</a> 2010-09-10 12:44 <a href="http://www.cppblog.com/GUO/archive/2010/09/10/126300.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重庆市第六届程序设计大赛试题</title><link>http://www.cppblog.com/GUO/archive/2010/09/06/125964.html</link><dc:creator>书呆子</dc:creator><author>书呆子</author><pubDate>Sun, 05 Sep 2010 16:56:00 GMT</pubDate><guid>http://www.cppblog.com/GUO/archive/2010/09/06/125964.html</guid><wfw:comment>http://www.cppblog.com/GUO/comments/125964.html</wfw:comment><comments>http://www.cppblog.com/GUO/archive/2010/09/06/125964.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/GUO/comments/commentRss/125964.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/GUO/services/trackbacks/125964.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: v\:* {behavior:url(#default#VML);}o\:* {behavior:url(#default#VML);}w\:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}Normal07.8 磅02falsefalsefalse...&nbsp;&nbsp;<a href='http://www.cppblog.com/GUO/archive/2010/09/06/125964.html'>阅读全文</a><img src ="http://www.cppblog.com/GUO/aggbug/125964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/GUO/" target="_blank">书呆子</a> 2010-09-06 00:56 <a href="http://www.cppblog.com/GUO/archive/2010/09/06/125964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据结构——线性表</title><link>http://www.cppblog.com/GUO/archive/2010/05/31/116770.html</link><dc:creator>书呆子</dc:creator><author>书呆子</author><pubDate>Sun, 30 May 2010 16:53:00 GMT</pubDate><guid>http://www.cppblog.com/GUO/archive/2010/05/31/116770.html</guid><wfw:comment>http://www.cppblog.com/GUO/comments/116770.html</wfw:comment><comments>http://www.cppblog.com/GUO/archive/2010/05/31/116770.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/GUO/comments/commentRss/116770.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/GUO/services/trackbacks/116770.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Win32控制台程序, 练习list.hCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#ifndef&nbsp;_LIST_H#define&nbsp;_LIST_H#define&nbsp;LIST_INIT_SIZE&nbsp;&nbsp;1...&nbsp;&nbsp;<a href='http://www.cppblog.com/GUO/archive/2010/05/31/116770.html'>阅读全文</a><img src ="http://www.cppblog.com/GUO/aggbug/116770.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/GUO/" target="_blank">书呆子</a> 2010-05-31 00:53 <a href="http://www.cppblog.com/GUO/archive/2010/05/31/116770.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>