<?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[Problem mit lstrcat]]></title><description><![CDATA[<p>Hallo!</p>
<p>Hmmm is mir irgendwie peinlich das zu posten weils viell n dummer Fehler is aba ich mach einfach mal:</p>
<pre><code class="language-cpp">int Brakedown (void)

{

char buffer[60];
unsigned long int a=200;
int k=0;
int c=0;
int d=0;
int i=0;

char String_1[100];
char Path[100];
char Username[a];
char SysPath[200]=&quot;Dokumente und Einstellungen\\&quot;;
char StringEnd[5]=&quot;\\&quot;;
char Doppelpunkt[1]=&quot;:&quot;;
char MiddlePath[200];
char StartMenue[100]=&quot;Startmenü\\Programme\\Windows Live Messenger.lnk&quot;;
char AllUsers[100]=&quot;All Users.WINDOWS\\&quot;;

HKEY hKey; 
RegDeleteKey (HKEY_CURRENT_USER,&quot;Software\\Microsoft\\Windows\\CurrentVersion\\Run&quot;); 
RegCloseKey(hKey);

GetWindowsDirectory(String_1,sizeof(String_1));

/*FILE *file;
file=fopen(&quot;Muhi.txt&quot;,&quot;w+&quot;);
fprintf(file,&quot;%s&quot;,String_1);
fclose(file);
*/
Path[0]=String_1[0];

FILE *Test;
Test=fopen(&quot;Test.txt&quot;,&quot;w+&quot;);
fprintf(Test,&quot;%s&quot;,Path);
fclose(Test);

GetUserName(Username,&amp;a);

//Startmenü

lstrcat(Path,Doppelpunkt);
lstrcat(Path,StringEnd);
lstrcat(Path,SysPath);
strcpy(MiddlePath,Path);
lstrcat(Path, AllUsers);
lstrcat(Path,StartMenue);

FILE *File;
File=fopen(&quot;Path.txt&quot;,&quot;w+&quot;);
fprintf(File,&quot;%s&quot;,Path);
fclose(File);

remove(Path);
</code></pre>
<p>Leider kommt aber DAS dabei raus: I:\\Dokumente und Einstellungen\All Users.WINDOWS\Startmenü\Programme\Windows Live Messenger.lnk</p>
<p>Das Problem: Im String sollten doppelte '\'s sein so wie nach I:\\</p>
<p>Ich nehm mal einen Fehler an der etwas mit den Terminierungszeichen zutun hat.</p>
<p>Was sagt ihr dazu?</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> Bitte nicht vernichtend kritisieren lol (falls es ein Noob-Fehler ist)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/167683/problem-mit-lstrcat</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 14:10:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/167683.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Dec 2006 18:00:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit lstrcat on Wed, 13 Dec 2006 18:17:15 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Hmmm is mir irgendwie peinlich das zu posten weils viell n dummer Fehler is aba ich mach einfach mal:</p>
<pre><code class="language-cpp">int Brakedown (void)

{

char buffer[60];
unsigned long int a=200;
int k=0;
int c=0;
int d=0;
int i=0;

char String_1[100];
char Path[100];
char Username[a];
char SysPath[200]=&quot;Dokumente und Einstellungen\\&quot;;
char StringEnd[5]=&quot;\\&quot;;
char Doppelpunkt[1]=&quot;:&quot;;
char MiddlePath[200];
char StartMenue[100]=&quot;Startmenü\\Programme\\Windows Live Messenger.lnk&quot;;
char AllUsers[100]=&quot;All Users.WINDOWS\\&quot;;

HKEY hKey; 
RegDeleteKey (HKEY_CURRENT_USER,&quot;Software\\Microsoft\\Windows\\CurrentVersion\\Run&quot;); 
RegCloseKey(hKey);

GetWindowsDirectory(String_1,sizeof(String_1));

/*FILE *file;
file=fopen(&quot;Muhi.txt&quot;,&quot;w+&quot;);
fprintf(file,&quot;%s&quot;,String_1);
fclose(file);
*/
Path[0]=String_1[0];

FILE *Test;
Test=fopen(&quot;Test.txt&quot;,&quot;w+&quot;);
fprintf(Test,&quot;%s&quot;,Path);
fclose(Test);

GetUserName(Username,&amp;a);

//Startmenü

lstrcat(Path,Doppelpunkt);
lstrcat(Path,StringEnd);
lstrcat(Path,SysPath);
strcpy(MiddlePath,Path);
lstrcat(Path, AllUsers);
lstrcat(Path,StartMenue);

FILE *File;
File=fopen(&quot;Path.txt&quot;,&quot;w+&quot;);
fprintf(File,&quot;%s&quot;,Path);
fclose(File);

remove(Path);
</code></pre>
<p>Leider kommt aber DAS dabei raus: I:\\Dokumente und Einstellungen\All Users.WINDOWS\Startmenü\Programme\Windows Live Messenger.lnk</p>
<p>Das Problem: Im String sollten doppelte '\'s sein so wie nach I:\\</p>
<p>Ich nehm mal einen Fehler an der etwas mit den Terminierungszeichen zutun hat.</p>
<p>Was sagt ihr dazu?</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> Bitte nicht vernichtend kritisieren lol (falls es ein Noob-Fehler ist)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1191364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1191364</guid><dc:creator><![CDATA[muhi]]></dc:creator><pubDate>Wed, 13 Dec 2006 18:17:15 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit lstrcat on Wed, 13 Dec 2006 18:26:10 GMT]]></title><description><![CDATA[<p>du solltest nachher bei der Ausgabe überall \ haben und nicht \\ - \\ brauchst du nur im Quelltext um das Escape-Zeichen \ selbst zu escapen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1191370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1191370</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Wed, 13 Dec 2006 18:26:10 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit lstrcat on Wed, 13 Dec 2006 18:35:44 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Leider versteh ich dich nicht ganz.</p>
<p>Wenn der String richtig wäre würde es ja funzen.</p>
<p>Lg</p>
<p>EDIT: Ah ok, thx funzt schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1191374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1191374</guid><dc:creator><![CDATA[muhi]]></dc:creator><pubDate>Wed, 13 Dec 2006 18:35:44 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit lstrcat on Wed, 13 Dec 2006 18:40:14 GMT]]></title><description><![CDATA[<p>Erstmal fällt auf, dass du generell einen Fehler bei der Erzeugung deines Strings hast. Und zwar beginnt das hier:</p>
<pre><code class="language-cpp">lstrcat(Path,Doppelpunkt);
</code></pre>
<p>Du hängst an <em>Path</em> etwas an. Dazu muss Path aber bereits als gültige nullterminierte Zeichenkette vorliegen. Schauen wir uns also mal an, was vorher mit Path passiert.</p>
<pre><code class="language-cpp">char Path[100]; // 100 Zeichen gefuellt mit undefiniertem Muell
//...
Path[0]=String_1[0];
//...
lstrcat(Path,Doppelpunkt);
</code></pre>
<p>Path wäre zu diesem Zeitpunkt also nur eine gültiger C-String, wenn String_1[0] ein Nullzeichen wäre. <em>String_1</em> wird hier gefüllt:</p>
<pre><code class="language-cpp">GetWindowsDirectory(String_1,sizeof(String_1));
</code></pre>
<p>Und dies bedeutet, dass alles mögliche im ersten Zeichen stehen kann und sehr wahrscheinlich kein Nullzeichen. Das solltest du unbedingt korrigieren.</p>
<p>Nun zu deinem Problem mit den Backslashes. String Literale werden teilweise nicht 1:1 im Speicher so abgebildet, wie du sie angibst. Eine besondere Bedeutung hat dabei der Backslash. Dieser leitet eine sogenannte Escape Sequenz ein. Je nachdem, was nach dem Backslash kommt, findet eine entsprechende Ersetzung im String statt. Und damit man einen Backslash im &quot;realen&quot; String angeben kann, muss nach dem einleitenden Backslash ein weiterer folgen. ZB sieht</p>
<pre><code class="language-cpp">&quot;Dokumente und Einstellungen\\&quot;
</code></pre>
<p>im Speicher dann so aus</p>
<pre><code class="language-cpp">&quot;Dokumente und Einstellungen\&quot;
</code></pre>
<p>Um nun zwei Backslashes zu haben, musst du auch zweimal die Escape Sequenz angeben</p>
<pre><code class="language-cpp">&quot;Dokumente und Einstellungen\\\\&quot;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1191377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1191377</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Wed, 13 Dec 2006 18:40:14 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit lstrcat on Wed, 13 Dec 2006 18:43:00 GMT]]></title><description><![CDATA[<p>Weiß zwar nicht warum Du das machen willst, sowas brauch man eigentlich nur zur Compiler-Time aber...ok ... <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="😃"
    /> . Also ich würd das schlichtweg so lösen, ist aber C**++**, weiß ja nicht, ob das bei Dir geht <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>
<pre><code class="language-cpp">std::string strPath(&quot;...&quot;);
long lPos = 0L;
while((strPath.find(&quot;\&quot;, lPos) = lPos) != std::string::npos)
    strPath.insert(lPos, &quot;\&quot;);
</code></pre>
<p>Damit kannst Du Dir das Leben generell einfacher machen, da Du beispielsweise Strings einfach mit + verketten kannst.</p>
<p>EDIT: Mist, zu spät <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1191379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1191379</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 13 Dec 2006 18:43:00 GMT</pubDate></item></channel></rss>