﻿<?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++博客-dongyu</title><link>http://www.cppblog.com/dongyu/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:08:00 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:08:00 GMT</pubDate><ttl>60</ttl><item><title>scanf输入字符串的回车识别问题</title><link>http://www.cppblog.com/dongyu/archive/2008/04/08/scanfr.html</link><dc:creator>dongyu</dc:creator><author>dongyu</author><pubDate>Tue, 08 Apr 2008 14:46:00 GMT</pubDate><guid>http://www.cppblog.com/dongyu/archive/2008/04/08/scanfr.html</guid><wfw:comment>http://www.cppblog.com/dongyu/comments/46560.html</wfw:comment><comments>http://www.cppblog.com/dongyu/archive/2008/04/08/scanfr.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/dongyu/comments/commentRss/46560.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/dongyu/services/trackbacks/46560.html</trackback:ping><description><![CDATA[<p>昨天在pku的的acm论坛上遇到这样的一道题：就是一个简单的字典问题。给定一组对应的英文和火星鸟语的字符串，并假设这些信息就构成一个字典。题目要求输入一个火星鸟语，然后经过查询，显示出相应的英语。（每个输入的英语或者火星鸟语都不得超过10个字节）</p>
<p>我个人觉得这道题，考查的就是对字符串的输入问题的处理。</p>
<p>题目给了一个提示：输入数据量较大，建议采用scanf和printf输入和输出数据。</p>
<p>&nbsp;</p>
<p>Description</p>
<p>You have just moved from  to a big city. The people here speak
an incomprehensible dialect of a foreign language. Fortunately, you have a
dictionary to help you understand them.</p>
<p>Input</p>
<p>Input consists of up to 100,000 dictionary entries,
followed by a blank line, followed by a message of up to 100,000 words. Each
dictionary entry is a line containing an English word, followed by a space and
a foreign language word. No foreign word appears more than once in the
dictionary. The message is a sequence of words in the foreign language, one
word on each line. Each word in the input is a sequence of at most 10 lowercase
letters.</p>
<p>Output</p>
<p>Output is the message translated to English, one word per
line. Foreign words not in the dictionary should be translated as
"eh". </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Sample Input</p>
<pre>dog ogday</pre>
<pre>cat atcay</pre>
<pre>pig igpay</pre>
<pre>froot ootfray</pre>
<pre>loops oopslay</pre>
<pre>&nbsp;</pre>
<pre>atcay</pre>
<pre>ittenkay</pre>
<pre>oopslay</pre>
<p>Sample Output</p>
<pre>cat</pre>
<pre>eh</pre>
<pre>loops</pre>
<p>&nbsp;</p>
<p style="color: #ff0000;">注意在输入字典数据和查询数据之间有一个空行。（本题的输入关键处理部分）也是我写这篇随笔的用意。</p>
<br>
<p style="color: #ff0000;"><br></p>
<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; 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</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">vector</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iterator</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>using&nbsp;namespace&nbsp;std;<br>struct&nbsp;dictionary<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;flanguage[</span><span style="color: #000000;">11</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;English[</span><span style="color: #000000;">11</span><span style="color: #000000;">];<br>};<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">dictionary</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;d_array;<br>&nbsp;&nbsp;&nbsp;&nbsp;vector</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">dictionary</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">::iterator&nbsp;iter;<br>&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;s1[</span><span style="color: #000000;">11</span><span style="color: #000000;">],s2[</span><span style="color: #000000;">11</span><span style="color: #000000;">],find[</span><span style="color: #000000;">11</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dictionary&nbsp;temp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //识别回车的处理部分<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s1[</span><span style="color: #000000;">0</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">getchar();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(s1[</span><span style="color: #000000;">0</span><span style="color: #000000;">]</span><span style="color: #000000;">==</span><span style="color: #008000;">'</span><span style="color: #008000;">\n')break;</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%s&nbsp;%s</span><span style="color: #000000;">"</span><span style="color: #000000;">,s1</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">,s2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(temp.English,s1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(temp.flanguage,s2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d_array.push_back(temp);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getchar();<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%s</span><span style="color: #000000;">"</span><span style="color: #000000;">,find)</span><span style="color: #000000;">==</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;logic</span><span style="color: #000000;">=</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(iter</span><span style="color: #000000;">=</span><span style="color: #000000;">d_array.begin();iter!</span><span style="color: #000000;">=</span><span style="color: #000000;">d_array.end();</span><span style="color: #000000;">++</span><span style="color: #000000;">iter)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(!strcmp(iter</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">flanguage,find))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;">,iter</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">English);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logic</span><span style="color: #000000;">=</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><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;">(logic)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">eh\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}<br></span></div>
<span style="color: #1826ff;">我个人脑子比较笨，想了半天想到的就只有这一种处理方法，如果大家有什么好的方法，希望你别太吝啬，不妨和大家分享你新奇的做法吧！</span><br><img src ="http://www.cppblog.com/dongyu/aggbug/46560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/dongyu/" target="_blank">dongyu</a> 2008-04-08 22:46 <a href="http://www.cppblog.com/dongyu/archive/2008/04/08/scanfr.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于huffman编码</title><link>http://www.cppblog.com/dongyu/archive/2008/04/06/huffmancoding.html</link><dc:creator>dongyu</dc:creator><author>dongyu</author><pubDate>Sun, 06 Apr 2008 12:15:00 GMT</pubDate><guid>http://www.cppblog.com/dongyu/archive/2008/04/06/huffmancoding.html</guid><wfw:comment>http://www.cppblog.com/dongyu/comments/46386.html</wfw:comment><comments>http://www.cppblog.com/dongyu/archive/2008/04/06/huffmancoding.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/dongyu/comments/commentRss/46386.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/dongyu/services/trackbacks/46386.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp; 这几天都在做一个huffman编码的试验！这个东西有点烦。但里面还是涉及道了一些很基础的东西！如：文件头的定义，huffman树的构造以及编码！码表的设计与定义等。但令我感到最烦的还是文件的I/O.看上去不是很复杂的东西！却扼杀了我大量的脑细胞。哎，要是学好了汇编！也就不至于这样了，汇编的对位操作应该是比较方便的，但自己汇编没怎么接触过，更谈不上在自己的代码中...&nbsp;&nbsp;<a href='http://www.cppblog.com/dongyu/archive/2008/04/06/huffmancoding.html'>阅读全文</a><img src ="http://www.cppblog.com/dongyu/aggbug/46386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/dongyu/" target="_blank">dongyu</a> 2008-04-06 20:15 <a href="http://www.cppblog.com/dongyu/archive/2008/04/06/huffmancoding.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>刚开通了博客</title><link>http://www.cppblog.com/dongyu/archive/2008/04/06/dongyu.html</link><dc:creator>dongyu</dc:creator><author>dongyu</author><pubDate>Sun, 06 Apr 2008 03:26:00 GMT</pubDate><guid>http://www.cppblog.com/dongyu/archive/2008/04/06/dongyu.html</guid><wfw:comment>http://www.cppblog.com/dongyu/comments/46350.html</wfw:comment><comments>http://www.cppblog.com/dongyu/archive/2008/04/06/dongyu.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/dongyu/comments/commentRss/46350.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/dongyu/services/trackbacks/46350.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 呵呵,刚刚开通了个C++博客,希望以后能在这里遇到更多C++大牛!能学到跟多的东西,我也会分享自己的一些学习经验吧.总之我个人觉得交流才能碰撞出灵感的火花!以后希望大家能多多交流.呵呵,就些这么多吧!<br><img src ="http://www.cppblog.com/dongyu/aggbug/46350.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/dongyu/" target="_blank">dongyu</a> 2008-04-06 11:26 <a href="http://www.cppblog.com/dongyu/archive/2008/04/06/dongyu.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>