<?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[String auslesen und Zeichen ergänzen]]></title><description><![CDATA[<p>Moin,</p>
<p>wie kann man Folgendes realisieren:</p>
<p>Ich lese aus einer Datei Telefonnr. aus, diese werden in strings gespeichert.</p>
<pre><code class="language-cpp">string number = &quot;+49 1231234123&quot;
</code></pre>
<p>Leider entspricht das Format nicht der DIN-Norm. Jetzt möchte ich den string verändendern, sodass am Schluss folgendes Ergebnis herauskommt.</p>
<pre><code class="language-cpp">string number = &quot;+49 (0)123 1234-123&quot;
</code></pre>
<p>Ist es möglich einen string von links nach rachts, zeichenweise auszulesen. Also nach dem 4ten Zeichen soll &quot;(0)&quot; eingefügt werden, nach dem 7ten Zeichen &quot; &quot; und nach dem 11ten Zeichen &quot;-&quot;.</p>
<p>MfG Domi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/282490/string-auslesen-und-zeichen-ergänzen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 00:34:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/282490.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Feb 2011 10:17:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String auslesen und Zeichen ergänzen on Mon, 21 Feb 2011 10:34:39 GMT]]></title><description><![CDATA[<p>Moin,</p>
<p>wie kann man Folgendes realisieren:</p>
<p>Ich lese aus einer Datei Telefonnr. aus, diese werden in strings gespeichert.</p>
<pre><code class="language-cpp">string number = &quot;+49 1231234123&quot;
</code></pre>
<p>Leider entspricht das Format nicht der DIN-Norm. Jetzt möchte ich den string verändendern, sodass am Schluss folgendes Ergebnis herauskommt.</p>
<pre><code class="language-cpp">string number = &quot;+49 (0)123 1234-123&quot;
</code></pre>
<p>Ist es möglich einen string von links nach rachts, zeichenweise auszulesen. Also nach dem 4ten Zeichen soll &quot;(0)&quot; eingefügt werden, nach dem 7ten Zeichen &quot; &quot; und nach dem 11ten Zeichen &quot;-&quot;.</p>
<p>MfG Domi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024071</guid><dc:creator><![CDATA[Blacky666]]></dc:creator><pubDate>Mon, 21 Feb 2011 10:34:39 GMT</pubDate></item><item><title><![CDATA[Reply to String auslesen und Zeichen ergänzen on Mon, 21 Feb 2011 10:28:39 GMT]]></title><description><![CDATA[<p>Ja, einen string kannst du genauso benutzen als wäre er ein vector&lt;char&gt;. Das heißt du kannst mit den bekannten Techniken iterieren, gezielt zugreifen und einfügen. Zudem bietet die Stringklasse natürlich noch zahlreiche Methoden die speziell auf Zeichenkettenmanipulation ausgelegt sind, näheres in der Doku zu der Klasse (z.B. <a href="http://www.cplusplus.com/reference/string/string/" rel="nofollow">hier</a>).</p>
<p>Aber das weißt du sicherlich schon. Das Problem ist wohl eher, die Umwandlung deiner Telefonnummer als Algorithmus allgemein zu formulieren.</p>
<blockquote>
<p>Also nach dem 4ten Zeichen soll &quot;(0)&quot; eingefügt werden, nach dem 7ten Zeichen &quot; &quot; und nach dem 11ten Zeichen &quot;-&quot;.</p>
</blockquote>
<p>Das ist zwar sehr einfach, aber das gilt doch wohl nicht für alle Telefonnummern, sondern nur für dein Beispiel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024073</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 21 Feb 2011 10:28:39 GMT</pubDate></item><item><title><![CDATA[Reply to String auslesen und Zeichen ergänzen on Mon, 21 Feb 2011 11:06:13 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort.</p>
<p>Die Telefonnr. die ich auslese sind immer genau so aufgebaut wie in meinem Beispiel.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;string&gt; 

using namespace std; 

int main(){

	string number = &quot;+49 1231234123&quot;;

	cout &lt;&lt; number &lt;&lt; endl;

	number.insert(11, &quot;-&quot;);
	number.insert(7, &quot; &quot;);
	number.insert(4, &quot;(0)&quot;);

	cout &lt;&lt; number &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>Habe das jetzt mal so gelöst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024080</guid><dc:creator><![CDATA[Blacky666]]></dc:creator><pubDate>Mon, 21 Feb 2011 11:06:13 GMT</pubDate></item><item><title><![CDATA[Reply to String auslesen und Zeichen ergänzen on Mon, 21 Feb 2011 11:15:45 GMT]]></title><description><![CDATA[<p>Worauf SeppJ sicher hinaus wollte ist, dass Vorwahlen nicht immer die gleiche Stellenanzahl haben. Auch ist die Stellenanzahl der eigentlichen Nummer nicht immer identisch. Das selbe gilt für die Durchwahl, die auch schon mal gar nicht vorhanden sein kann. Es wird sicher schwierig sein, für dieses Problem überhaupt eine saubere Lösung zu finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024086</guid><dc:creator><![CDATA[mixxa]]></dc:creator><pubDate>Mon, 21 Feb 2011 11:15:45 GMT</pubDate></item><item><title><![CDATA[Reply to String auslesen und Zeichen ergänzen on Mon, 21 Feb 2011 11:38:44 GMT]]></title><description><![CDATA[<p>Ja es könnte zum Problem werden, aber wirklich nicht in meinem Fall. Bin jetzt die Liste, die ich auslesen muss, nochmals durchgegangen. Alle Nr. sind so geglieder &quot;+49 (vorwahl) (nr)(durchwahl)&quot;. Die Vorwahl und die Nr bleiben immer gleich. Nur die Druchwahl ist immer verschieden, aber auch immer nur 3-stellig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024092</guid><dc:creator><![CDATA[Blacky666]]></dc:creator><pubDate>Mon, 21 Feb 2011 11:38:44 GMT</pubDate></item><item><title><![CDATA[Reply to String auslesen und Zeichen ergänzen on Mon, 21 Feb 2011 11:48:35 GMT]]></title><description><![CDATA[<p>Braucht nur noch jemand ein Leerzeichen zuviel/zuwenig machen und dein Programm funktioniert nicht mehr...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024097</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Mon, 21 Feb 2011 11:48:35 GMT</pubDate></item><item><title><![CDATA[Reply to String auslesen und Zeichen ergänzen on Tue, 22 Feb 2011 13:43:04 GMT]]></title><description><![CDATA[<p>HighLigerBiMBam schrieb:</p>
<blockquote>
<p>Braucht nur noch jemand ein Leerzeichen zuviel/zuwenig machen und dein Programm funktioniert nicht mehr...</p>
</blockquote>
<p>Gebe ich dir vollkommen Recht. Die Liste aus der ich diese Daten auswerte, wird sauber gepflegt. Leider fehlt mir noch die Erfahrung um eventuelle Fehleingaben zu automatisch zu korrigieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024714</guid><dc:creator><![CDATA[Blacky666]]></dc:creator><pubDate>Tue, 22 Feb 2011 13:43:04 GMT</pubDate></item><item><title><![CDATA[Reply to String auslesen und Zeichen ergänzen on Tue, 22 Feb 2011 14:11:49 GMT]]></title><description><![CDATA[<p>Evtl. std::regex/boost::regex?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024729</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 22 Feb 2011 14:11:49 GMT</pubDate></item><item><title><![CDATA[Reply to String auslesen und Zeichen ergänzen on Tue, 22 Feb 2011 14:27:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;cctype&gt;

string number = &quot;+49 12   31  234   123 &quot;;

for(size_t i = 0; i &lt; number.length(); ++i)
	if(isspace(number[i]))
		number.erase(i--, 1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2024741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024741</guid><dc:creator><![CDATA[ganzplump]]></dc:creator><pubDate>Tue, 22 Feb 2011 14:27:33 GMT</pubDate></item><item><title><![CDATA[Reply to String auslesen und Zeichen ergänzen on Tue, 22 Feb 2011 21:42:18 GMT]]></title><description><![CDATA[<p>Hallo Domi,</p>
<p>ich würde das im Prinzip so ähnlich machen, wie schon als <a href="http://www.c-plusplus.net/forum/p2025001#2025001" rel="nofollow">Lösungsvorschlag auf Deine letzte Anfrage</a> beschrieben.</p>
<p>Fasse 'Telefonnummer' in eine Struktur. Das hat zunächst einmal den Vorteil, dass Du sie von std::string unterscheiden kannst. Insbesondere wenn man jetzt eine Funktion schreiben kann, die (im allereinfachsten Fall) so aussehen kann:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

// --   Eine Telefonnummer
struct Telefonnummer
{
    std::string laendereinwahl;
    std::string nummer;
};

// -- diese Funktion liest die Telefonnummer
std::istream&amp; lese_ein( std::istream&amp; in, Telefonnummer&amp; p )
{
    in &gt;&gt; p.laendereinwahl;
    in &gt;&gt; p.nummer;
    return in;
}
</code></pre>
<p>Das funktioniert genau dann, wenn die Telefonnummer z.B.: so &quot;+49 1233445678&quot; geschrieben sind.</p>
<p>Anschließend schreibst Du noch eine Funktion, die die Telefonnummer auch wieder ausgibt. Also z.B.:</p>
<pre><code class="language-cpp">// -- diese Funktion gibt die Telefonnummer aus
std::ostream&amp; schreibe( std::ostream&amp; out, const Telefonnummer&amp; tn )
{
    out &lt;&lt; tn.laendereinwahl &lt;&lt; &quot; (0) &quot; &lt;&lt; tn.nummer; // hier jetzt das gewünschte '(0)' einfügen
    return out;
}
</code></pre>
<p>.. ja und der Rest sollte Dir bekannt vorkommen.</p>
<pre><code class="language-cpp">int main()
{
    using namespace std;

    ifstream datei( &quot;telefonnummern.txt&quot; );
    if(!datei.is_open()) 
        cerr &lt;&lt; &quot;Fehler beim Oeffnen der Datei!&quot; &lt;&lt; endl;
    else {
		for( Telefonnummer tel; lese_ein( datei, tel ); ) {
            schreibe( cout, tel ) &lt;&lt; endl;
		}
    }
    return 0;
}
</code></pre>
<p>Sollte die Telefonnummer nicht so einfach oder einheitlich formatiert sein, so kann man das in 'lese_ein' lösen. Da ist natürlich einiges möglich.<br />
Genauso hast Du die Möglichkeit die Ausgabe zu verfeinern bzw. Deinen Wünschen anzupassen - in 'schreibe'.<br />
Das eigentliche Programm, welches beides nutzt, bleibt davon unbehelligt.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2025021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2025021</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 22 Feb 2011 21:42:18 GMT</pubDate></item></channel></rss>