arraystrings miteinander vergleichen / windows fenster



  • ich habe 2 probleme eines ist, zwei chararraystrings miteinanderzuvergleichen 😕 :

    #include <iostream>
    using namespace std;
    int main ()
    {
    	char list[3];
    	char ab[3];
    	list[0]="dream";
    	list[1]="try";
    	list[2]="sage";
    	ab[0]="dream";
    	ab[1]="tri";
    	ab[2]="sage";
    	if (list[0]==ab[0])
    	{
    		cout << "wahr" << endl;
    	}
    	else
    	{
    	cout << "nr 0 ist falsch" << endl; 
    	}
    if (list[1]==ab[1])
    	{cout << "wahr" << endl;
    	}else{
    	cout << "nr 0 ist falsch" << endl; }
    if (list[2]==ab[2])
    	{cout << "wahr" << endl;
    	}else{
    	cout << "nr 0 ist falsch" << endl; }
    
    return 0;
    }
    

    das andere ist ein einfaches windows fenster zu programmieren(finde meinen fehler nicht) 😞

    #include <windows.h>
    LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
    int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpcmdline, int ncmdshow)
    {
    	WNDCLASSEX windowclass;
    	HWND hWnd;
    	MSG message;
    	const char szClassName[] = "erstes fenster";
    	windowclass.cbSize = sizeof (WNDCLASSEX);
    	windowclass.style = CS_HREDRAW | CS_VREDRAW;
    	windowclass.lpfnWndProc = WindowProc;
    	windowclass.cbClsExtra = 0;
    	windowclass.cbWndExtra = 0;
    	windowclass.hInstance = hInst;
    	windowclass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    	windowclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    	windowclass.hCursor = LoadCursor (NULL, IDC_ARROW);
    	windowclass.hbrBackground = (HBRUSH)COLOR_BACKGROUND+1;
    	windowclass.lpszMenuName = NULL;
    	windowclass.lpszClassName = szClassName;
    	if (!RegisterClassEx (&windowclass))
    		return (0);
    	hWnd = CreateWindowEx (NULL,
    		szClassName, "das erste fenster!",
    		WS_OVERLAPPEDWINDOW | WS_VISIBLE,
    		100, 100, 300, 250,
    		NULL,NULL,hInst,NULL);
    if (hWnd == NULL)
    return (0);
    while (GetMessage (&message, NULL, 0, 0))
    {
    	TranslateMessage (&message);
    	DispatchMessage (&message);
    }
    return (int)(message.wParam);
    }
    LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	switch(message)
    	{
    	case WM_DESTROY:
    		{	
    		PostQuitMessage (0);
    		return (0);
    	}
    	case WM_KEYDOWN:
    		{
    		switch (wParam)
    		{
    	case VK_ESCAPE:
    		{
    		PostQuitMessage (0);
    		return (0);
    }
    }
    }break;
    }
    return (DefWindowProc (hWnd, message, wParam, lParam));
    }
    

    ich würde mich bei verbesserungen sehr freuen

    EDIT MRi: Codetags eingebaut.



  • Hallo,

    es wäre übersichtlicher, wenn Du für die Codes BB-Codes verwenden würdest.
    Außerdem könntest Du auch noch die Fehlermeldung(en) hier rein pasten.

    Nun zum Problem #1: Ich würde da eher Strings verwenden. Dabei solltest Du die
    Präprozessor-Direktive

    #include <string>
    

    inkludieren. Wenn du nämlich
    bei einem char-array folgendes tust:

    char list[3];
    

    bedeutet das, dass
    die Variable drei Zeichen aufnehmen kann. Deshalb ist es meiner Meinung unsinnig
    char-arrays zu verwenden. Hier kleines Beispiel zu den strings:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main ()
    {
    	// variables
    	string list[3];
    	list[0] = "list1";
    	list[1] = "list2";
    	list[2] = "list3";
    
    	// show variables
    	for (int i=0; i<3; i++)
    		cout << list[i] << endl;
    
    	cout << endl;
    	system ("pause");
    
    	return 0;
    }
    

Anmelden zum Antworten