# [BCB] String to Char



## Tec (24. August 2003)

hi, mein pronlem ist folgendes:

ich will StrPos nutzen aberd as braucht ja 2mal char:
extern PACKAGE char * __fastcall StrPos(const char * Str1, const char * Str2)

aber ich lese aus 
	
	
	



```
Memo1->Lines->Strings[i]
```
 aus und das ist ja typ String
wie wandele ich nun String in Char um?


----------



## bsdxroot (24. August 2003)

strcpy ( destination, source[ position ] );


würd ich mal versuchen. ;-)


----------



## rockbaer (24. August 2003)

schommal mit casten versucht?


----------



## Tec (26. August 2003)

was soll das bitte sein o.o"


----------



## bsdxroot (26. August 2003)

ein cast ist eine typconvertierung einer variablen.


```
#include <iostream>

using namespace std;

int main ( void )
{
     float pi = 3.1415;
     int daumen = 10;
     int erg = ( int ) pi * daumen;      // das in den klammern ist ein cast!

    cout << erg << endl;
    
    return 0;
}
```

du verlangst, das pi NICHT als float verwendet wird, sondern explizit als INT.

ich weiss allerdings nicht ob das bei deinem Problem weiterhilft.
Poste doch mal bitte den entsprechenden teil aus deiner source.


----------



## chibisuke (10. September 2003)

äh kommt drauf an welchen string zu meinst...

(es gibt 2...)

entweder du mein CString ... (MFC)
   dann benutzt du einen typecast nach LPCTSTR (der operator is in CString überladen)...

also char* data = (LPCTSTR) MyString;

oder wenn du std::String benutzt... (aus der STL)
   dann benutzt du die member funktion c_str()

also char* data = MyString.c_str(); 
oder char* data = MyString->c_str(); wenn du einen pointer hast...


wie gesagt je nachdem ob du mit MFC oder mit STL arbeitest sind strings unterschiedlich zu behandeln... aber es is eigendlich um einiges besser gleich mit den char[]s zu arbeiten, die lassen sich nämlich sauber in char* convertieren (sogar ohne typecast)


also ich hab eben nochmal die eine zeile von dem code den du gepostet hast angesehen ... so wies aussieht is das MFC...
entsprechend sollte es so gehen...
((LPCTSTR)Memo1->Lines->Strings[ i])


----------



## upo_berlin (17. Januar 2005)

Tec hat gesagt.:
			
		

> hi, mein pronlem ist folgendes:
> 
> ich will StrPos nutzen aberd as braucht ja 2mal char:
> extern PACKAGE char * __fastcall StrPos(const char * Str1, const char * Str2)
> ...


 
würde ggf. darüber nachdenken, warum hier eine c-funktion nötig ist...
der rest sieht mir nach c++ aus...
um dem stil treu zu bleiben:

```
Memo1->Lines->Strings[i].Pos("was du suchst...");
```

liefert die position des suchtextes zurück...
einfach mal die hilfe für ansistring lesen und freuen...

upo


----------

