string in funktion



  • Hallo ich würde gerne ein string in eine Funktion übergeben, als char funktioniert die als string leider nicht, ich bitte um Hilfe.

    Mfg Anbo

    Hier der Quellcode mit char (der funktioniert):

    ...
    button(hDC,10,10,30,20,'k',RGB(1,1,1));
    ...
    void button(HDC hDC,int posx,int posy,int langex,int langey,char name,COLORREF farbe)
    {
    	char str[100];
    	sprintf(str,"%c",name);
    	TextOut(hDC,5,5,str,strlen(str));
    }
    

    Hier mit string (funktioniert leider nicht):

    ...
    button(hDC,10,10,30,20,'klickmich',RGB(1,1,1));
    ...
    void button(HDC hDC,int posx,int posy,int langex,int langey,char name[20],COLORREF farbe)
    {
    	char str[100];
    	sprintf(str,"%s",name);
    	TextOut(hDC,5,5,str,strlen(str));
    }
    

    Fehlermeldung:Zu viele Zeichen in der Konstante (2.Zeile)

    Bin bei Hilfe sehr dankbar.



  • void button(HDC hDC,int posx,int posy,int langex,int langey, const char *name,COLORREF farbe)
    


  • außerdem ist das kein string:

    'klickmich'

    in C++ (und auch C, C#, Java, usw.) muss das als String schon so aussehen:

    "klickmich"



  • Vielen Dank,
    mit pointer hab ichs noch nicht so aber ich lerne und 'klickmich' hatte ich weil ich das in der englischen schreibweise gewohnt bin aber "klickmich" ist natürlich richtig. Vielen danke euch beiden.

    Mfg Anbo



  • Das hat mit englisch nix zu tun, die Programmiersprache und somit auch dein C++ Compiler fordern eine ganz klare Syntax und dazu gehört, dass Zeichenketten mit doppeltem Hochkomma (***"***) eingeleitet und auch wieder abgeschlossen werden. Die einfachen Hochkommata (***'***) sind für Zeichen.


Anmelden zum Antworten