<?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[Umgebungsvariable einlesen, bestimmte Stelle suchen und zerlegen]]></title><description><![CDATA[<p>Hallo Zusammen,</p>
<p>ich möchte die Umgebungsvariable QUERY_STRING einlesen, und diese zerlegen.<br />
Das heißt ich suche zuerst nach dem Variablennamen der in der Variablen steht und speicher die Anfangspositon in einer Variablen ab, daraufhin suche ich nach den Trennzeichen '&amp;' und '='. Diese trennen jeweils Variablenname und den dazugehörigen Wert.</p>
<p>Bisher habe ich folgenden Code:</p>
<pre><code>std::string Umgebungsvariable=getenv(&quot;QUERY_STRING&quot;);
	std::string	sUmgebungsvariable;
	char *CheckVariable=&quot;Nachname=&quot;;
	char *Trennzeichen1=&quot;=&quot;;
	char *Trennzeichen2=&quot;&amp;&quot;;
	char *stelle;
	string Wert;
	int position;
	int position1;
	int position2;
	int groeße;

	stelle = strstr(Umgebungsvariable.c_str(),CheckVariable);
	position= stelle-Umgebungsvariable.c_str()+1;

	if (stelle != NULL)
	{
		stelle=strstr(Umgebungsvariable.c_str(), Trennzeichen1);
		position1=stelle-Umgebungsvariable.c_str()+1;
		stelle=strstr(Umgebungsvariable.c_str(), Trennzeichen2);
		position2=stelle-Umgebungsvariable.c_str();
		groeße=position2 - position1;
		sUmgebungsvariable = Umgebungsvariable;
		Wert = sUmgebungsvariable.substr(position1,groeße);
		fopen_s(&amp;cLogFile,&quot;./AZeit.log&quot;,&quot;a&quot;);
		fprintf(cLogFile, &quot;%s\n&quot;,Wert);
		fclose(cLogFile);

	}
</code></pre>
<p>Ich weiß noch nicht genau ob das ganze so funtkionieren würde, als ich es gerade testen wollte bekam ich aber 3 Fehlermeldungen:</p>
<pre><code>1&gt;c:\test\test\app.cpp(42) : error C2440: '=': 'const char *' kann nicht in 'char *' konvertiert werden
1&gt;        Durch die Konvertierung gehen Qualifizierer verloren
1&gt;c:\test\test\app.cpp(47) : error C2440: '=': 'const char *' kann nicht in 'char *' konvertiert werden
1&gt;        Durch die Konvertierung gehen Qualifizierer verloren
1&gt;c:\test\test\app.cpp(49) : error C2440: '=': 'const char *' kann nicht in 'char *' konvertiert werden
1&gt;        Durch die Konvertierung gehen Qualifizierer verloren
</code></pre>
<p>Was mache ich falsch? Liegt es an c_str()?<br />
Hoffe jemand kann mir (mit einem kleinen Beispiel) weiterhelfen.</p>
<p>Mit freundlichen Grüßen<br />
Everready</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/264808/umgebungsvariable-einlesen-bestimmte-stelle-suchen-und-zerlegen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 13:20:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/264808.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Apr 2010 09:40:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Umgebungsvariable einlesen, bestimmte Stelle suchen und zerlegen on Tue, 13 Apr 2010 09:40:09 GMT]]></title><description><![CDATA[<p>Hallo Zusammen,</p>
<p>ich möchte die Umgebungsvariable QUERY_STRING einlesen, und diese zerlegen.<br />
Das heißt ich suche zuerst nach dem Variablennamen der in der Variablen steht und speicher die Anfangspositon in einer Variablen ab, daraufhin suche ich nach den Trennzeichen '&amp;' und '='. Diese trennen jeweils Variablenname und den dazugehörigen Wert.</p>
<p>Bisher habe ich folgenden Code:</p>
<pre><code>std::string Umgebungsvariable=getenv(&quot;QUERY_STRING&quot;);
	std::string	sUmgebungsvariable;
	char *CheckVariable=&quot;Nachname=&quot;;
	char *Trennzeichen1=&quot;=&quot;;
	char *Trennzeichen2=&quot;&amp;&quot;;
	char *stelle;
	string Wert;
	int position;
	int position1;
	int position2;
	int groeße;

	stelle = strstr(Umgebungsvariable.c_str(),CheckVariable);
	position= stelle-Umgebungsvariable.c_str()+1;

	if (stelle != NULL)
	{
		stelle=strstr(Umgebungsvariable.c_str(), Trennzeichen1);
		position1=stelle-Umgebungsvariable.c_str()+1;
		stelle=strstr(Umgebungsvariable.c_str(), Trennzeichen2);
		position2=stelle-Umgebungsvariable.c_str();
		groeße=position2 - position1;
		sUmgebungsvariable = Umgebungsvariable;
		Wert = sUmgebungsvariable.substr(position1,groeße);
		fopen_s(&amp;cLogFile,&quot;./AZeit.log&quot;,&quot;a&quot;);
		fprintf(cLogFile, &quot;%s\n&quot;,Wert);
		fclose(cLogFile);

	}
</code></pre>
<p>Ich weiß noch nicht genau ob das ganze so funtkionieren würde, als ich es gerade testen wollte bekam ich aber 3 Fehlermeldungen:</p>
<pre><code>1&gt;c:\test\test\app.cpp(42) : error C2440: '=': 'const char *' kann nicht in 'char *' konvertiert werden
1&gt;        Durch die Konvertierung gehen Qualifizierer verloren
1&gt;c:\test\test\app.cpp(47) : error C2440: '=': 'const char *' kann nicht in 'char *' konvertiert werden
1&gt;        Durch die Konvertierung gehen Qualifizierer verloren
1&gt;c:\test\test\app.cpp(49) : error C2440: '=': 'const char *' kann nicht in 'char *' konvertiert werden
1&gt;        Durch die Konvertierung gehen Qualifizierer verloren
</code></pre>
<p>Was mache ich falsch? Liegt es an c_str()?<br />
Hoffe jemand kann mir (mit einem kleinen Beispiel) weiterhelfen.</p>
<p>Mit freundlichen Grüßen<br />
Everready</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882014</guid><dc:creator><![CDATA[Everready]]></dc:creator><pubDate>Tue, 13 Apr 2010 09:40:09 GMT</pubDate></item><item><title><![CDATA[Reply to Umgebungsvariable einlesen, bestimmte Stelle suchen und zerlegen on Tue, 13 Apr 2010 09:45:58 GMT]]></title><description><![CDATA[<p>Dein Fehler ist, dass du C mit C++ mischt. Entfern die &quot;char*&quot; und nutze std::string.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882018</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Tue, 13 Apr 2010 09:45:58 GMT</pubDate></item><item><title><![CDATA[Reply to Umgebungsvariable einlesen, bestimmte Stelle suchen und zerlegen on Tue, 13 Apr 2010 09:48:41 GMT]]></title><description><![CDATA[<p>Und <code>find</code> statt <code>strstr</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882022</guid><dc:creator><![CDATA[Nukularfüsiker]]></dc:creator><pubDate>Tue, 13 Apr 2010 09:48:41 GMT</pubDate></item><item><title><![CDATA[Reply to Umgebungsvariable einlesen, bestimmte Stelle suchen und zerlegen on Tue, 13 Apr 2010 10:53:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ertsmal danke für die beiden sehr schnellen Antworten... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Ich habe den Code nun folgendermaßen abgeändert:</p>
<pre><code>std::string Umgebungsvariable=getenv(&quot;QUERY_STRING&quot;);
	std::string CheckVariable=&quot;Nachname=&quot;;
	std::string Trennzeichen1=&quot;=&quot;;
	std::string Trennzeichen2=&quot;&amp;&quot;;
	int stelle;
	string Wert;
	int position;
	int position1;
	int position2;
	int groeße;

	stelle = Umgebungsvariable.find(CheckVariable);

	if (stelle != string::npos)
	{
		stelle=Umgebungsvariable.find(Trennzeichen1);
		position1=stelle;
		stelle=Umgebungsvariable.find(Trennzeichen2);
		position2=stelle;
		groeße=position2 - position1;
		Wert = Umgebungsvariable.substr(position1,groeße);
		fopen_s(&amp;cLogFile,&quot;./AZeit.log&quot;,&quot;a&quot;);
		fprintf(cLogFile, &quot;%s\n&quot;,Wert);
		fclose(cLogFile);
}
</code></pre>
<p>Allerdings erhalte ich nun folgendes Fehlerfenster, wenn ich das Programm compilieren möchte:</p>
<p>Debug Asserrtion Failed!<br />
Programm: c:\test\Debug\app.exe<br />
File: f:\dd\vctools\crt_bld\self_x86\crt\src\xstring<br />
Line: 1094<br />
Expression: invalid null pointer</p>
<p>Kann mir jemand sagen wo hier der Fehler steckt?</p>
<p>Mit freundlcihen Grüßen<br />
Everready</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882054</guid><dc:creator><![CDATA[Everready]]></dc:creator><pubDate>Tue, 13 Apr 2010 10:53:36 GMT</pubDate></item><item><title><![CDATA[Reply to Umgebungsvariable einlesen, bestimmte Stelle suchen und zerlegen on Tue, 13 Apr 2010 11:02:49 GMT]]></title><description><![CDATA[<p>Everready schrieb:</p>
<blockquote>
<pre><code class="language-cpp">fopen_s(&amp;cLogFile,&quot;./AZeit.log&quot;,&quot;a&quot;);
		fprintf(cLogFile, &quot;%s\n&quot;,Wert);
		fclose(cLogFile);
}
</code></pre>
</blockquote>
<p>Und jetzt hörst du auf C und C++ zu mischen, und benutzt die Streams aus der Standardbibliothek.</p>
<p>fpritnf ist nicht <strong>typsicher</strong>. Mit dem Formatwert %s sagst du an, du übergibst einen C-String. C-Strings sind Char-Pointer. Du übergibst jedoch einen <strong>völlig</strong> anderen Typ, einen std::string.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882059</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Tue, 13 Apr 2010 11:02:49 GMT</pubDate></item><item><title><![CDATA[Reply to Umgebungsvariable einlesen, bestimmte Stelle suchen und zerlegen on Tue, 13 Apr 2010 11:03:30 GMT]]></title><description><![CDATA[<p>Everready schrieb:</p>
<blockquote>
<p>Kann mir jemand sagen wo hier der Fehler steckt?</p>
</blockquote>
<p>Der Debugger kann das.<br />
Vielleicht liefert <code>getenv(&quot;QUERY_STRING&quot;)</code> NULL zurück. Vielleicht aber auch nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882060</guid><dc:creator><![CDATA[Nukularfüsiker]]></dc:creator><pubDate>Tue, 13 Apr 2010 11:03:30 GMT</pubDate></item></channel></rss>