Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Strings in WinApi?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
17.05.2005, 19:43 Uhr
Fraenky



Hallo Leute!
kann man eigentlich auch den Datentyp string anstatt char in der WinApi Programmierung nutzen?
Ich habe jedenfalls die string.h includet und dann wollt ich einfach eine String Variable deklarieren:


C++:

#include <string.h>
...
string sTextA;


Jedenfall meckert er, er kenne string nicht..
ich habe auch schon versucht andere header einzubinden:


C++:
#include <string>
#include <strings>
#include <strings.h>



Aber nix hat geholfen..

Den Grund warum ich mit strings arbeiten möchte und nicht mit char bzw LPSTR, ist der, dass ich die Suchfunktionen zb sTextA.find("e"); für strings nutzen will. Oder gibt es sowas auch für char bzw LPSTR? Sind solche Funktionen auch schon für den Datentyp LPSTR vordefiniert?? Welche Dateien muss ich dann noch includen?

Danke!!

MfG
Fraenky

Ich arbeite übrigends mit Dev-C++ falls es jmd hilft...
--
Welcome to the real World.

www.fraenkysweb.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.05.2005, 19:53 Uhr
Spacelord
Hoffnungsloser Fall



C++:
#include <string>

......


std::string str;



MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.05.2005, 20:05 Uhr
Fraenky



hi!
danke erstmal!

warum muss man dann nun, wenn man mit der WinApi programmiert den std:: davor setzen?

Danke!

MfG
Fraenky
--
Welcome to the real World.

www.fraenkysweb.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.05.2005, 20:07 Uhr
0xdeadbeef
Gott
(Operator)


Das muss man immer, string ist im namespace std. Alternativ:

C++:
#include <string>

using namespace std;

// ...
string str;


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.05.2005, 20:22 Uhr
Fraenky



ach das using namespace hab ich vergessen...nur weil Dev-C++ es weg läßt,wenn man ne "WindowsAplication" erstellt...;-)

Ich habe mir jetzt eine funktion geschrieben, die den char auf ein Zeichen durchsucht und mir dessen Position wiedergibt. Nun möchte ich aber das Zeichen, das zB bei char[8] liegt in einem EditFeld ausgeben:

C++:
char szText1[ ] = "";
//funktion...
// iPos = Position des Zeichens
//szText2 = szText1[iPos];
SetWindowText(hEdit2, szText2);


leider funzt das nicht und man bekommt beim Compilieren eine Fehlermeldung..

Wie kann ich das zeichen, das ich haben möchte, in eine neue Variable (am besten auch char) speichern und dann ausgeben lassen?

Danke!

MfG
Fraenky
--
Welcome to the real World.

www.fraenkysweb.de

Dieser Post wurde am 17.05.2005 um 20:22 Uhr von Fraenky editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.05.2005, 20:50 Uhr
Spacelord
Hoffnungsloser Fall


Wie ist szText2 deklariert?
Und was für ne Fehlermeldung bekommst du?

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.05.2005, 21:14 Uhr
Fraenky



Bei mir ist es atm so:

C++:
char szText1[128] = "";
char szText2[128] = "";
int iExpo;
for(i=0; i<dwTextLength1; i++)
{
if(szText1[i] == '^')
{
iPosBasis = i-1;
iPosExpo = i+1;    
break;
}
}
szExpo[0] = szText1[iPosExpo]; // so bekomme ich zB den Exponenten...gibts nch ne andere/elegantere Lösung?
iExpo = atof(szExpo);//in eine zahl umwandeln damit man damit rechnen kann
//Rechnung
sprintf(szText2, "%d", iExpo);//wieder in ein char umwandeln zum ausgeben
SetWindowText(hEdit2, szText2);



naja ich bekomm zwar den Exponent aber mit der Basis klappts noch nicht wirklich..
--
Welcome to the real World.

www.fraenkysweb.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
19.05.2005, 13:34 Uhr
Airdamn



so vielleicht:

C++:
char szText1[128] = "25^17", szExpo[5], szBasis[5];
int nLength = strlen( szText1 );

for( int i = 0; i < nLength; ++i)
{
    if( szText1[i] == '^' )
    {
        szText1[i] = '\0';
        strcpy( szBasis, szText1 );
        strcpy( szExpo, &szText1[i+1] );
        break;
    }
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
19.05.2005, 20:30 Uhr
Fraenky



hi!
also das mit der basis hab ich jetzt schon alleine hinbekommen...trotzdem Danke!

Ich hab da mal ne andere Frage:
ich möchte gerne einen char-T0ext, den ich aus einem Edit Feld auslese, in einer anderen char-Variable speichern. also quasi :

C++:
char szText1[128] = "Dies ist ein Text";
char szText2[128] = "";

szText2 = szText1; // jetzt müsste hier egtl der text von szText1 drin stehen..


naja das klappt halt nicht so einfach..bzw klappt gar nicht..
"169 \main.cpp ISO C++ forbids assignment of arrays"

dann hab ich das mit einer for-schleife versucht, Zeichen für zeichen zu machen:

C++:
for(j=0; j<=dwTextLength1; j++)
{
szText2[j] = szText1[j];        
}


das klappt aber auch nicht..
Nun die nächste Lösung wäre, den char in ein string umzuwandeln, diesem in eine andere string-variable kopieren und diese dann wieder ins char Format zu konventieren..

Gibts da keine elegantere Lösung? Mir kommt das nen bissl ähm....bl*d vor....als wenn das zu umständlich wäre und es bestimmt ne bessere Lösung gibt, die ich aber grad nicht sehe... *zud**f*

Danke!

MfG
Fraenky
--
Welcome to the real World.

www.fraenkysweb.de

Dieser Post wurde am 19.05.2005 um 20:33 Uhr von Fraenky editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
19.05.2005, 20:59 Uhr
Oliver
S2-Pixelgeneral


strcpy
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: