<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Verbesserungsvorschlag zu Worterkennung]]></title><description><![CDATA[<p>Hallo Freunde, habe ein kleines Prog zur Worterkennung geschrieben, wirklich primitiv! Wollte fragen ob ich das token (was ja ein String ist) auch mit der switch-case Anweisung oder irgendwie anders mit fertigen Erkennungswörtern vergleichen kann.</p>
<p>[/cpp]<br />
// K7token1.cpp<br />
//</p>
<p>#include &quot;stdafx.h&quot;</p>
<p>// Datei in Wörter zerlegen<br />
#include &lt;iostream&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;</p>
<p>using namespace std;</p>
<p>#define BUFFERLEN 500</p>
<p>void main()<br />
{<br />
FILE *file;<br />
char *token; //actual word<br />
char *key=&quot;X&quot;;<br />
int line; //Number of lines<br />
int wordcount; //Number of words<br />
char *filename = &quot;readarr2.txt&quot;;<br />
char buffer[BUFFERLEN]; //input buffer</p>
<p>file = fopen(filename, &quot;r&quot;);<br />
if(file == NULL){<br />
printf(&quot;Cannot open file %s\n&quot;,filename);<br />
return ;<br />
}<br />
line = 0;<br />
wordcount = 0;<br />
while(!feof(file))<br />
{<br />
fgets(buffer,BUFFERLEN,file);/*read line*/<br />
printf(&quot;\n&quot;);<br />
token = strtok(buffer,&quot;\n \t&quot;); /* strtok initialization for each line */<br />
/* separation characters are */<br />
/* tabulator, endofline and blank */<br />
line++;<br />
switch(token[0])<br />
{<br />
case 'H':<br />
{<br />
if(token[1]=='A'){<br />
wordcount++;<br />
token = strtok(NULL,&quot;\n \t&quot;); /*next word*/<br />
}break;<br />
}<br />
}<br />
printf(&quot;%s&quot;,token);<br />
}<br />
printf(&quot;\n&quot;);<br />
printf(&quot;Number of Lines: %d\n&quot;,line);<br />
printf(&quot;Number of Treffer: %d\n&quot;,wordcount);</p>
<p>}</p>
<p>[cpp]</p>
<p>Im MOment, kann ich jetzt HA erkennen und ein Zähler zählt hoch, wie kann ich Hallo erkennen, ohne 5 abfragen machen zu müssen?</p>
<p>Danke euch!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/254265/verbesserungsvorschlag-zu-worterkennung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 01:02:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/254265.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Nov 2009 19:58:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verbesserungsvorschlag zu Worterkennung on Fri, 13 Nov 2009 19:58:26 GMT]]></title><description><![CDATA[<p>Hallo Freunde, habe ein kleines Prog zur Worterkennung geschrieben, wirklich primitiv! Wollte fragen ob ich das token (was ja ein String ist) auch mit der switch-case Anweisung oder irgendwie anders mit fertigen Erkennungswörtern vergleichen kann.</p>
<p>[/cpp]<br />
// K7token1.cpp<br />
//</p>
<p>#include &quot;stdafx.h&quot;</p>
<p>// Datei in Wörter zerlegen<br />
#include &lt;iostream&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;</p>
<p>using namespace std;</p>
<p>#define BUFFERLEN 500</p>
<p>void main()<br />
{<br />
FILE *file;<br />
char *token; //actual word<br />
char *key=&quot;X&quot;;<br />
int line; //Number of lines<br />
int wordcount; //Number of words<br />
char *filename = &quot;readarr2.txt&quot;;<br />
char buffer[BUFFERLEN]; //input buffer</p>
<p>file = fopen(filename, &quot;r&quot;);<br />
if(file == NULL){<br />
printf(&quot;Cannot open file %s\n&quot;,filename);<br />
return ;<br />
}<br />
line = 0;<br />
wordcount = 0;<br />
while(!feof(file))<br />
{<br />
fgets(buffer,BUFFERLEN,file);/*read line*/<br />
printf(&quot;\n&quot;);<br />
token = strtok(buffer,&quot;\n \t&quot;); /* strtok initialization for each line */<br />
/* separation characters are */<br />
/* tabulator, endofline and blank */<br />
line++;<br />
switch(token[0])<br />
{<br />
case 'H':<br />
{<br />
if(token[1]=='A'){<br />
wordcount++;<br />
token = strtok(NULL,&quot;\n \t&quot;); /*next word*/<br />
}break;<br />
}<br />
}<br />
printf(&quot;%s&quot;,token);<br />
}<br />
printf(&quot;\n&quot;);<br />
printf(&quot;Number of Lines: %d\n&quot;,line);<br />
printf(&quot;Number of Treffer: %d\n&quot;,wordcount);</p>
<p>}</p>
<p>[cpp]</p>
<p>Im MOment, kann ich jetzt HA erkennen und ein Zähler zählt hoch, wie kann ich Hallo erkennen, ohne 5 abfragen machen zu müssen?</p>
<p>Danke euch!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1807722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807722</guid><dc:creator><![CDATA[NochNOOB]]></dc:creator><pubDate>Fri, 13 Nov 2009 19:58:26 GMT</pubDate></item><item><title><![CDATA[Reply to Verbesserungsvorschlag zu Worterkennung on Fri, 13 Nov 2009 22:26:20 GMT]]></title><description><![CDATA[<p>Du musst einen string Vergleich machen. <code>switch</code> arbeitet nur auf integralen Typen, wie int oder char. Aber strings musst du (und da das eher C, als C++ zu schein seid) mit <code>strcmp</code> machen:<br />
<a href="http://www.cplusplus.com/reference/clibrary/cstring/strcmp/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cstring/strcmp/</a></p>
<p>In C++ kannst du die strings einfach mit dem <code>==-Operator</code> vergleichen.</p>
<pre><code class="language-cpp">std::string token ( &quot;hallo&quot; );

if ( token == &quot;hallo&quot; ) std::cout &lt;&lt; &quot;found&quot;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1807777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1807777</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 13 Nov 2009 22:26:20 GMT</pubDate></item></channel></rss>