2Danke
ERLEDIGT
JA
JA
ANTWORTEN
11
11
ZUGRIFFE
558
558
EMPFEHLEN
-
Hallo liebes Forum,
ich komme mal wieder in C++ nicht weiter. Ich habe eine Funktion die mir einen String mit Zahlen zurückliefert. Nun möchte ich mir eine bestimmte Stelle(Position) des Strings eine einzelne Ziffer rauspicken und mit der Ziffer die vorher ein String war ein Integer draus machen um die Position als Interger Typ an eine Funktion zu übergeben, die nur Integer erwartet.
Beispiel:
Code :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 32 33 34
// Funktion die einen String liefert: string hash1(int anzahl) { // Inhalt Code 0-9 char inhalt[] = {'0','1','2','3','4','5','6','7','8','9','0'}; string key; // größe des Arrays int counter = sizeof(inhalt)-1; // Time srand( (unsigned) time(NULL) ); for(int i=0; i<anzahl;i++) { int random = 1 + ( rand() % counter ); key += inhalt[random]; } return key; } int main(int argc, char* argv[]) { string hash1_key = hash1(30); int iID = 3; //28. Position des Strings ist eine Zahl 0-9 int pos = hash1_key[28]; // z.B. pos = 7 //Funktion die einen integer erwartet //string numberString, int number, unsigned int position insertNumberInString(hash1_key, tID, pos); }
Leider ist die Variable Pos kein richtiger Integerwert die Funktion insertNumberInString wird nicht richtig ausgeführt. Muss ich vielleicht Pos in einen integer umwandeln? Ich komme mit den Typen nicht wirklich klar. Kann mir jemand helfen?
Vielen DankWer mit dem Strom schwimmt, erreicht die Quelle nie.
-
Hi
Hope this helps
http://www.ozzu.com/programming-foru...-int-t271.html
Cheers
-
13.12.11 10:36 #3
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
auf ein bestimmtes Element in einem String kannst du zum Beispiel so zugreifen:
Code c:1 2 3 4 5 6
char zeichen = dein_string.c_str()[position]; // evtl gehts auch so: char zeichen = dein_string[position]; // die ziffer bekommst dann, indem du 0x30 abziehst, siehe ASCII Tabelle int ziffer = zeichen - 0x30;
Hier kannst du mehr Infos über die ASCII-Zeichen nachlesen: Klick
Gruß
BKGeändert von Bratkartoffel (13.12.11 um 10:41 Uhr)
Ü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"
-
Danke ihr habt mir sehr geholfen

grußWer mit dem Strom schwimmt, erreicht die Quelle nie.
-
Hi BK,
ich habe da noch ein anderes Problem. Ich möchte den erzeugten HASHCode mit der versteckten ID direkt an einen Browser übergeben. Dazu habe ich folgende Funktion geschrieben:
Code :1 2 3 4 5 6 7 8 9 10 11 12
int openBrowser(string hash) { string URL = "http://www.test.de/"+hash; // Browser öffnen mit statischer URL funktioniert es. ShellExecute( 0, _T("open"), _T("http://www.test.de"), 0, 0, SW_SHOWNORMAL ); //funktioniert //ShellExecute( 0, _T("open"), _T(url), 0, 0, SW_SHOWNORMAL ); // funktioniert leider nicht :-( return 1; }
Sobald ich das _T( .. entferne gibt es einen Fehler. Die Frage ist jetzt ob ich die URL vorher noch irgendwie umwandeln muss damit ich den erzeugten HASH an eine URL übergeben kann.
Die header #include <windows.h> , #include <shellapi.h> habe ich bereits eingebunden.
Vielen Dank nochmalWer mit dem Strom schwimmt, erreicht die Quelle nie.
-
13.12.11 13:13 #6
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
kenn mich zwar mit Windows-Programmierung nicht aus, aber versuche mal folgendes:
Code c:1
ShellExecute( 0, _T("open"), _T(url.c_str()), 0, 0, SW_SHOWNORMAL );
OT: Was ist denn das ominöse _T Makro?
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"
-
Einfach ausgedrückt wandelt _T() den Wert in der Klammer (char oder string) in UNICODE um.
-
Code :
1 2 3
string url = "http://www.test.de/test"; ShellExecute( 0, _T("open"), _T(url.c_str()), 0, 0, SW_SHOWNORMAL );
Ich erhalte einen Fehler:
- Der Bezeichner "Lurl" ist nicht definiert
Falls es mit ShellExecute gar nicht funkrtioniert, gibt es vielleicht eine alternative dazu?
Hat noch keiner eine Lösung?
Ich bin inzwischen ein kleines bisschen weitergekommen.
Wenn ich nun:
Kann ich den String ohne Fehler manipulieren. Ich weis nur nicht wie ich den String jetzt richtig Formatiere.Code :1 2 3 4
CString s; s.Format(_T("http://www.test.de/ %s"), hash); ShellExecute( NULL, _T("open"), s, NULL, NULL, SW_SHOWNORMAL );
Kann mir jemand dabei helfen?
Ich glaube %s steht für String aber bei der URL werden mir kryptische Zeichen angezeigt
Danke
grußGeändert von sheel (13.12.11 um 17:18 Uhr) Grund: Doppel
Wer mit dem Strom schwimmt, erreicht die Quelle nie.
-
Hi
%s uÄ. muss zu hash passen, nicht zum String.
Wenn hash ein int ist: %dNetiquette (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, ...?
-
Hi Sheel,
danke für deine Antwort. Hash ist ein 30 Ziffern langer code. Wenn ich %d mache, dann kommt bei der URL nur irgendwas kryptisches raus. Ich möchte einfach nur den HASH an die URL hängen. Das kann doch nicht so schwierig sein, dachte ich mir und nun sitze ich schon den halben Tag dran
Wer mit dem Strom schwimmt, erreicht die Quelle nie.
-
Es gibt keinen int-Typ für 30-stellige Dezimalzahlen?
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, ...?
-
Ich bin mir nicht sicher ob es einen Int typ für 30 stellen gibt. Habe das mal gegoogelt der maximale Bereich liegt bei -2147483648 und +2147483647 und die Angabe lautet %d oder %i.
Quelle:
http://pronix.linuxdelta.de/C/standa...ierung_8.shtml
Vielleicht ist es besser daraus einen String zu machen. Aber ich weis leider nicht wie ich das machen soll. VIelleicht kannst du mir da weiterhelfen. Würde mich sehr freuen.
grußWer mit dem Strom schwimmt, erreicht die Quelle nie.
Ähnliche Themen
-
String to Integer
Von Fichte im Forum VisualStudio & MFCAntworten: 0Letzter Beitrag: 14.10.07, 20:02 -
String in Integer
Von paul meier im Forum .NET Windows FormsAntworten: 1Letzter Beitrag: 18.09.06, 17:47 -
[c++] String to Integer
Von moistwanted im Forum C/C++Antworten: 6Letzter Beitrag: 24.05.05, 16:50 -
integer und string
Von folio im Forum PHPAntworten: 4Letzter Beitrag: 30.12.04, 20:44 -
String als Integer
Von lindin im Forum JavaAntworten: 4Letzter Beitrag: 25.10.04, 17:12





Zitieren


Login






