CString in ein Char Array
-
Guten Morgen zusammen,
da ich für ein Programm einen Tokenizer brauche, hab ich ich ma der MSDN bedient und bin auf dieses hier gestoßen.
#include <string.h> #include <stdio.h> char string[] = "A string\tof ,,tokens\nand some more tokens"; char seps[] = " ,\t\n"; char *token; void main( void ) { printf( "%s\n\nTokens:\n", string ); /* Establish string and get the first token: */ token = strtok( string, seps ); while( token != NULL ) { /* While there are tokens in "string" */ printf( " %s\n", token ); /* Get next token: */ token = strtok( NULL, seps ); } }
Scheint auch soweit optimal zu sein. Mein Problem jedoch ist, dass ich vorher aus einer Textdatei eine Zeile in einen CString einlese, und genau diese Zeile (dieser CString) sollt durch den Tokenizer laufen.
Nun stehe ich aber vor dem Problem, wie ich das mit dem Char Array hinkriege. Ich weiß leider nicht, wie ich den CString zum Char Array konvertiert kriege..
Hoffe mir kann einer von euch helfen, ich habe bereits etwas gesehen, dass ich wohl um einen Pointer nicht drumherum käme, wie wäre dieser dann aber einzusetzen?
-
CString str("bladtest"); char * c = new char[str.GetLength()]; strcopy(c,str.GetBuffer(0),str.GetLength());
Ungetestet, ohne Garantie...
Devil
-
Danke für die Antwort
Und sorry für die dumme gegenfrage: An welcher Stelle muss ich das einsetzen?
CString Dateiname = ".\\logfile.txt"; CString csTmp, csText, csRekorder, csVersion; CStdioFile file; DWORD dwread; string::size_type pos; schrift.CreateFont(14, 0, 0, 0, 200, 0, 0, 0, 1, 1, 0, 1, 2, "Courier New"); m_cEdit.SetFont(&schrift); file.Open(Dateiname, CFile::typeText | CFile::modeRead); do { dwread = file.ReadString(csTmp); pos = csTmp.Find("Recorder:"); if(pos != string::npos) { csRekorder = csTmp; } } while (dwread > 0); file.Close(); AfxMessageBox("Found " + csRekorder + " and " + csVersion, MB_OK | MB_ICONASTERISK); char string[] = csRekorder; char seps[] = " ,\t\n"; char *token; void main( void ) { printf( "%s\n\nTokens:\n", string ); /* Establish string and get the first token: */ token = strtok( string, seps ); while( token != NULL ) { /* While there are tokens in "string" */ printf( " %s\n", token ); /* Get next token: */ token = strtok( NULL, seps ); } }