<?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[zeichenfolge schnellstmöglichst vergleichen]]></title><description><![CDATA[<p>so vollgendes soll die funktion machen also ich habe einen string oder char (das wäre variable möglich) in dem die momentane dateiendung steht z.b. php und ich habe momentan ein char array in dem z.b. folgendes steht php,php3,php4 und ich möchte nun prüfen ob die dateiendung dort drin steht wenn ja soll ner anderen funktion dann die für diese endung beötigte exe mitgeteilt werden hier z.b.</p>
<p>C:\php\php-cgi.exe und das soll eben möglichst schnell geschehen momentan prüfe ich halt per strtok in ner schleife einfach di werte durch</p>
<p>aber da die zeichenfolge(z.b. php,php3,php4) beim start des programms eingelesen wird und es dabei auch egal it ob diese als char array oder string usw. eingelesen wird oder sonstwie weiter aufgearbeitet wird<br />
ist es nur wichtig das die funktion möglichst schnell ist und vielleicht gibts ja noch ne gute möglichkeit dafür zu sorgen das auch ne dateiendung z.b. Php als übereinstimmung für php gefunden wird</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/119221/zeichenfolge-schnellstmöglichst-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 22:06:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/119221.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Aug 2005 16:59:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Mon, 29 Aug 2005 17:06:57 GMT]]></title><description><![CDATA[<p>so vollgendes soll die funktion machen also ich habe einen string oder char (das wäre variable möglich) in dem die momentane dateiendung steht z.b. php und ich habe momentan ein char array in dem z.b. folgendes steht php,php3,php4 und ich möchte nun prüfen ob die dateiendung dort drin steht wenn ja soll ner anderen funktion dann die für diese endung beötigte exe mitgeteilt werden hier z.b.</p>
<p>C:\php\php-cgi.exe und das soll eben möglichst schnell geschehen momentan prüfe ich halt per strtok in ner schleife einfach di werte durch</p>
<p>aber da die zeichenfolge(z.b. php,php3,php4) beim start des programms eingelesen wird und es dabei auch egal it ob diese als char array oder string usw. eingelesen wird oder sonstwie weiter aufgearbeitet wird<br />
ist es nur wichtig das die funktion möglichst schnell ist und vielleicht gibts ja noch ne gute möglichkeit dafür zu sorgen das auch ne dateiendung z.b. Php als übereinstimmung für php gefunden wird</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860822</guid><dc:creator><![CDATA[Skippy]]></dc:creator><pubDate>Mon, 29 Aug 2005 17:06:57 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Mon, 29 Aug 2005 17:05:55 GMT]]></title><description><![CDATA[<p>std::map&lt;std::string, FunctionZeiger&gt; bzw. std::map&lt;std::string, std::string&gt; ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860825</guid><dc:creator><![CDATA[eventuell]]></dc:creator><pubDate>Mon, 29 Aug 2005 17:05:55 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Mon, 29 Aug 2005 18:00:54 GMT]]></title><description><![CDATA[<p>Wenn es nicht auf Eleganz, sondern auf Zeit ankommt und die Laenge der String fixiert ist dann etwa soetwas:</p>
<pre><code class="language-cpp">if ((szStr_0 [0] == szStr_1 [0]) &amp;&amp;
    (szStr_0 [1] == szStr_1 [1]) &amp;&amp;
    (szStr_0 [2] == szStr_1 [2]))
    fResult = true;
else
    fResult = false;
</code></pre>
<p>Du kannst auch ein strcmp verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860860</guid><dc:creator><![CDATA[MBCS-CITP]]></dc:creator><pubDate>Mon, 29 Aug 2005 18:00:54 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Mon, 29 Aug 2005 18:36:48 GMT]]></title><description><![CDATA[<p>Wenn du deine Frage nochmal in einem vernünftigen deutsch, mit Satzzeichen und allem Pipapo, stellst, schafft man es als Leser vielleicht deinen Beitrag auch über eine Zeile hinweg zu lesen.</p>
<p>Aber so? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/860880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860880</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 29 Aug 2005 18:36:48 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 12:28:03 GMT]]></title><description><![CDATA[<p>@eventuell wenn ich mich richtig erinnert haben sollte, ist doch sdt::map ne relativ langsame funktion?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9866">@MBCS-CITP</a> die länge der dateiendungen ist ja leider nicht festgesetzt es gäbe ja z.b. php und die endung php3.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861334</guid><dc:creator><![CDATA[Skippy]]></dc:creator><pubDate>Tue, 30 Aug 2005 12:28:03 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 12:57:09 GMT]]></title><description><![CDATA[<p>das ist überhaupt keine funktion. zeigt schon das du keine ahnung hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861375</guid><dc:creator><![CDATA[eventuell]]></dc:creator><pubDate>Tue, 30 Aug 2005 12:57:09 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 14:34:01 GMT]]></title><description><![CDATA[<p>Generell würde ich sagen ist es kein richtiger<br />
Anwendungsfall dafür das die strings möglichst schnell<br />
verglichen werden müssen, wenn dies nur beim Starten<br />
der Anwendung geschieht.<br />
In einem solchen Fall ist eine richtige Optimierung<br />
denke ich eher zuviel Arbeitsaufwand für nix was der User<br />
wirklich merkt.</p>
<p>Man könnte das so machen.</p>
<pre><code class="language-cpp">std::vector&lt;string&gt; prefixValues;
prefixValues.push_back (&quot;php3&quot;);
prefixValues.push_back (&quot;php4&quot;);

typedef vector&lt;string&gt;::iterator iter;

for (iter = prefixValues.begin(); iter != prefixValues.end(); ++iter)
{
 if (testString.compare((*iter)) == 0)
 {
   cout &lt;&lt; &quot;String ist in Liste ;-)&quot; &lt;&lt; endl;
 }
}
</code></pre>
<p>Die compare methode aus std::string ist eine bereits<br />
optimierte Vergleichmethode.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861483</guid><dc:creator><![CDATA[Viper190]]></dc:creator><pubDate>Tue, 30 Aug 2005 14:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 14:38:44 GMT]]></title><description><![CDATA[<p>@eventuell und was hat das mit meinem problem zu tun?<br />
Und was ist daran so schlimm das ich keien ahnung hab?<br />
Wenn ich ahnung von c++ hätte bräuchte ich hier nicht fragen, sondern wüsste die Antworten selbst und ausserdem programmiere ich erst seit nen drei-viertel Jahr, in meiner Freizeit mal so ein zwei stunden am Tag.</p>
<p>Und ausserdem ist das hier unwichtig ich weiss nur das ich mal gelesen hab um in einer &quot;tabelle&quot; daten vorzuhalten da hatte man verglichen char array, vector map usw. un da hieß es das map ungeeignet ist wenn es um geschwindigkeit geht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861488</guid><dc:creator><![CDATA[Skippy]]></dc:creator><pubDate>Tue, 30 Aug 2005 14:38:44 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 14:46:08 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10587">@viper190</a> Da besteht wohl ein Missverständis also schonmal Endschuldigung wenn ich mich undeutlich ausgedrückt habe:</p>
<p>Verglichen wird während das Programm (ein webserver) läuft.<br />
Immer wenn eine Anfrage gestellt wird soll nachgesehen werden ob diese Endung im Server als eine cgi Erweiterung geführt wird.<br />
Wenn ja soll die entsprechende Exe gestartet werden(z.b.php-cgi.exe)<br />
und die verabreiteten daten zum Clienten geschickt werden.</p>
<p>Oben wollte ich nur sagen das es auch möglich wäre, wenn hilfreich die Daten schon beim start des Servers vorzusortieren, wenn dies die anschließende Funktion die eben im Server laufend aufgerufen wird dadurch Beschleunigt werden kann.<br />
Hoffe mal das war jetzt ein wenig Verständlicher von mir. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/861493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861493</guid><dc:creator><![CDATA[Skippy]]></dc:creator><pubDate>Tue, 30 Aug 2005 14:46:08 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 15:12:42 GMT]]></title><description><![CDATA[<p>std::map</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861514</guid><dc:creator><![CDATA[tipp]]></dc:creator><pubDate>Tue, 30 Aug 2005 15:12:42 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 15:19:13 GMT]]></title><description><![CDATA[<p>Skippy schrieb:</p>
<blockquote>
<p>Und ausserdem ist das hier unwichtig ich weiss nur das ich mal gelesen hab um in einer &quot;tabelle&quot; daten vorzuhalten da hatte man verglichen char array, vector map usw. un da hieß es das map ungeeignet ist wenn es um geschwindigkeit geht</p>
</blockquote>
<p>Kann mir nicht vorstellen das map ungeeignet ist einen eintrag zu finden da diese Struktur schon mal nach keys sortiert ist. Würde eher behaupten map ist aufs finden spezialisiert. &quot;Langsam&quot; is wahrscheinlich einfügen und löschen.<br />
Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861520</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Tue, 30 Aug 2005 15:19:13 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 15:23:03 GMT]]></title><description><![CDATA[<p>Ich habs dreimal durchgelesen, und nicht verstanden:<br />
Hast DU Deinen Text auf japanisch geschrieben, und diesen dann übersetzen lassen?<br />
Wie wäre es denn, Du würdest - Artchi sagte es schon - erst einmal Deutsch lernen.</p>
<p>Ich schreib ja auch oft sehr hektisch; aber der &quot;vorschau&quot;-Button wäre sehr hilfreich. ( Dies war ein Konjunktiv)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861524</guid><dc:creator><![CDATA[HannsW]]></dc:creator><pubDate>Tue, 30 Aug 2005 15:23:03 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 15:38:40 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10038">@HannsW</a> es gibt ne viel einfachere Erklärung screenreader und spracherkennung</p>
<p>So und nun Versuch Nummer zwei,<br />
1.Beim Start des Programms bekommt ihr folgende Zeichenfolge: php,php3,phtml<br />
damit könnt ihr machen was ihr wollt selbst der typ steht vollkommen frei es kann von mir aus als char string map oder sonstwas vorliegen oder umgewandelt werden.<br />
Einzige Bedingung der String selbst muss beliebig Erweiterbar sein bis 255 Zeichen<br />
also die Anzahl der angegeben Endungen steht nicht fest.!!!</p>
<p>Und danach will ich in einer Funktion einfach nur Prüfen ob die Dateiendung vorhanden ist Die ich als Anfrage bekommen habe(z.b.index.php)und wenn die Dateiendung<br />
hier &quot;php&quot; vorhanden ist soll ne andere Funktion aufgerufen werden die der php-cgi.exe sagt das sie index.php verarbeiten soll usw.</p>
<p>Und diese Erkennung ob die Endung php vorhanden ist soll so schnell wie möglich erfolgen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861533</guid><dc:creator><![CDATA[Skippy]]></dc:creator><pubDate>Tue, 30 Aug 2005 15:38:40 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 15:49:38 GMT]]></title><description><![CDATA[<p>und warum geht nicht str.find()?<br />
etwa</p>
<pre><code class="language-cpp">std::str dasWasÜbergeben wurde;
if (dasWasÜbergeben.find  (&quot;PHP4,0)&gt; 0 ) { tue dies;returun;}
//...
if (dasWasÜbergeben.find  (&quot;PHP&quot;,0)&gt; 0 ) { tue jenes;return;}
</code></pre>
<p>AUf PHP darfst Du dann naturlich errst als letztes prüfen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/861542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861542</guid><dc:creator><![CDATA[HannsW]]></dc:creator><pubDate>Tue, 30 Aug 2005 15:49:38 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 16:05:38 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10038">@HannsW</a><br />
Problem das die Anzahl der Endungen und die Endungen selbst nicht feststehen</p>
<p>und es gibt dort ein problem (sicherheitslücke) da php45 als php4 erkannt werden würde</p>
<p>momentan hab ich das ja folgendermaßen gemacht</p>
<pre><code class="language-cpp">char * token;

		           token = strtok(CGIEXTENSION, &quot;,&quot;);

if(ufileext == token)CGItoEXECUTE=1;

		           while(CGItoEXECUTE == 0 &amp;&amp; token != NULL )
		             {
			            token = strtok(NULL, &quot;,&quot;); 
			            if(token == NULL) break;

                                  if(ufileext == token)CGItoEXECUTE=1;

		             }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/861553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861553</guid><dc:creator><![CDATA[Skippy]]></dc:creator><pubDate>Tue, 30 Aug 2005 16:05:38 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 16:27:35 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/861568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861568</guid><dc:creator><![CDATA[:roll:]]></dc:creator><pubDate>Tue, 30 Aug 2005 16:27:35 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 17:09:44 GMT]]></title><description><![CDATA[<p>Früher gab es mal argc und argv!<br />
Außerdem musst Du doch wissen, worauf Du prüfen willst. &quot;php4&quot; und &quot;php45&quot;. z.B</p>
<pre><code class="language-cpp">int main(int argc, char *argv[]){
    for ( int i = 1 ; i&lt; argc ; i++) {
        if ( argv[i] = &quot;php4&quot;) {
            // solltest aber z.b mit UPPERCASE vergleichen
            // falls einer &quot;PhP4&quot; schreibt
            machewas;
            continue; // leiben manche nicht
        }
        if ...... unn soweiter
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/861590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861590</guid><dc:creator><![CDATA[HannsW]]></dc:creator><pubDate>Tue, 30 Aug 2005 17:09:44 GMT</pubDate></item><item><title><![CDATA[Reply to zeichenfolge schnellstmöglichst vergleichen on Tue, 30 Aug 2005 17:54:10 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10038">@HannsW</a>: argc und argv gibt es immer noch. Und wenn ich Skippy richtig verstehe, kann der Nutzer neue Fileextensions in seinem Programm registrieren. (Ähnlich dem Registrieren von Dateiendungen in Windows)</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9200">@Skippy</a>: Dein Code funktioniert so nicht. Du vergleichst Pointer statt Strings. Wenn Du mit char* arbeitest, musst Du strcmp (oder ähnliche Routinen verwenden).</p>
<p>Wenn Du davon ausgehst, dass Du nur wenige Extensions hast, dann ist ein map unsinnig. In Deinem Beispiel nützt Dir die map wenig, da kannst Du auch linear durch einen Vektor suchen.</p>
<p>Wenn Du dagegen erwartest, dass sehr viele Extensions registriert sind, dann macht eine map Sinn und ist mit Sicherheit eine schnelle Lösung.</p>
<p>Beispiel (inkl. Tippfehler und so):</p>
<pre><code class="language-cpp">class CGI {
public:
   void registerExtension( const std::string&amp; ext, const std::string exeFileName);

   const std::string&amp; findExe( const std::string&amp; ext) const;
private:
   std::map&lt;std::string, std::string&gt; _cgiExt;
};

void CGI::registerExtension( const std::string&amp; ext, const std::string exeFileName)
{
   // check vorher, um zu verhindern, dass versehentlich eine extension
   // zweimal registriert wird.
   _cgiExt.insert( std::make_pair( ext, exeFileName);
}

 const std::string&amp; CGI::findExe( const std::string&amp; ext) const
{
   std::map&lt;std::string, std::string&gt;::const_iterator it
     = _cgiExt.find( ext);
   if( it == _cgiExt.end()) {
      return std::string(); // nicht gefunden, Leerstring oder Exception?
   }

   return it-&gt;second;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/861602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/861602</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Tue, 30 Aug 2005 17:54:10 GMT</pubDate></item></channel></rss>