2Danke
ERLEDIGT
JA
JA
ANTWORTEN
9
9
ZUGRIFFE
449
449
EMPFEHLEN
-
Hallo liebes Forum,
ich habe ein Problem. Ich würde gerne an einem String der nur aus Zahlen besteht an bestimmter stelle eine weitere Zahl anfügen.
Code :1 2 3 4 5 6 7 8 9 10 11 12
string code = "215472560524632"; //die Zahl die eingefügt werden soll int zahl2 = 5; //An stelle anfügen oder ersetzen code[4], wobei code[4] auf die Zahl 7 Zeigt, die ich mit der Zahl 5 ersetzen möchte. // Der String sollte jetzt so aussehen: string code = "2154->5<-2560524632"; 215452560524632
Hat jemand eine Idee, wie ich das in C++ umsetzen kann?
Vielen Dank
grußWer mit dem Strom schwimmt, erreicht die Quelle nie.
-
12.12.11 14:29 #2
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
ich kann dir nur sagen, wie ich das in C machen würde, eventuell hilft dir das aber auch weiter.
Angenommen du willst eine Zahl wie oben geschrieben an den Index 4 setzen.
Möglichkeit 1:
Du erstellst ein neues Array / String und kopierst erst alles bis (n-1) da rein, dann die Zahl und abschließend den Rest ab (n).
Möglichkeit 2:
Mit realloc das Array größer machen, mit memmove alles ab (n) eine Position weiterschieben und in der Lücke dann die Zahl einfügen.
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Willst du wirklich einfügen oder nur ersetzen?
Dein Beispielergebnis hats nämlich nur ersetzt.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Hallo,
vielen Dank für die Antworten.
Ich möchte es lieber ersetzen statt hineinkopieren. Kannst du mir ein Codebeispiel dazu geben?
Vielen DankWer mit dem Strom schwimmt, erreicht die Quelle nie.
-
Ich habe gerade noch mal darüber nachgedacht und würde es doch lieber anfügen, statt zu ersetzen. Über ein Codebeispiel würde ich mich sehr freuen. Vielen Dank schon mal.
grußWer mit dem Strom schwimmt, erreicht die Quelle nie.
-
12.12.11 16:22 #6
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.516
Ich weiß nicht genau, obs das hier ist:
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#include <string> #include <iostream> #include <stdio.h> std::string insertNumberInString(std::string numberString, int number, unsigned int position) { std::string newString(""); for(size_t i = 0; i < numberString.length(); i++) { if(i==position-1) newString += number + 0x30; newString += numberString[i]; } return newString; } int main(int argc, char **argv) { int zahl2 = 5; std::string code("215472560524632"); std::cout << insertNumberInString(code, zahl2, 5) << std::endl; getchar(); }
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
WOW *freu* genau das habe ich gesucht. Funktioniert leider nur bis newString += number + 0x30;. Der Pfeil wird bei der Ausgabe an der richtigen Stelle angezeigt, leider nicht die "number". Weisst du vielleicht woran das liegen könnte? Übergeben wird in der main()
cout << insertNumberInString(hash1_key, 12, 4) << endl;
Meine Ausgabe: 441<673866837773850276551263770
Vielen vielen Dank, dass du dir die Zeit dafür genommen hast.Wer mit dem Strom schwimmt, erreicht die Quelle nie.
-
12.12.11 17:10 #8
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.516
Ah, ok, du übergibst jetzt zweistellige Werte. Darauf ist das Programm nicht vorbereitet. Dann muss man das etwas anders machen:
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#include <string> #include <iostream> #include <stdio.h> #include <stdlib.h> std::string insertNumberInString(std::string numberString, int number, unsigned int position) { std::string newString(""); char szNumber[10]; itoa(number, szNumber, 10); for(size_t i = 0; i < numberString.length(); i++) { if(i==position-1) newString += szNumber; newString += numberString[i]; } return newString; } int main(int argc, char **argv) { int zahl2 = 12; std::string code("215472560524632"); std::cout << insertNumberInString(code, zahl2, 5) << std::endl; getchar(); }
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Vielen Dank. Wünschte ich wäre selber drauf gekommen. Aber dazu fehlt mir leider noch die Erfahrung. Wünsche dir noch einen schönen Abend ich habe ihn jetzt jedenfalls

grußWer mit dem Strom schwimmt, erreicht die Quelle nie.
-
12.12.11 17:19 #10
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.516
Ich muss zugeben, das was ich da hin gecodet habe, ist übelstes gehacke... C und C++-Code mischen ist ganz pfui. Es funktioniert zwar, schön ist es aber nicht. Ich muss auch noch viel über C++ lernen, daher gleite ich oft nach C ab
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
Ähnliche Themen
-
In einen variablen String einen anderen an bestimmter Stelle einfügen
Von firewing im Forum PHPAntworten: 2Letzter Beitrag: 30.09.09, 23:10 -
In String ab bestimmter stelle schreiben
Von MScalli im Forum Java GrundlagenAntworten: 15Letzter Beitrag: 28.05.08, 08:35 -
Char von bestimmter Stelle im String suchen
Von sra im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 16.01.08, 10:57 -
int an bestimmter Stelle auslesen
Von ProgFreak im Forum C/C++Antworten: 1Letzter Beitrag: 28.08.06, 00:41 -
Maus an bestimmter Stelle
Von illetuffi im Forum Flash PlattformAntworten: 2Letzter Beitrag: 04.05.05, 12:57





Zitieren


Login






