Veröffentlicht 15. Juli 200124 j Hallo! Danke für eure Hife, habe das Programm umgeschrieben läuft immer noch nicht, was hab ich denn jetzt bloß falsch gemacht???? Ich brauche glaube ich ein Buch!!!!! Ich habe letzte Woche mit dem programmieren anfangen müssen und habe nun schon ein kleines Problem mit meinem Programm. Dieses Programm soll eine Namensabfrage vollziehen das heißt, wird der Name Frank über Tastatur eingegeben soll als mitteiling ausgegeben werden "richtig" bei falscher eingabe soll dem entsprechent "falsch" augegeben werden. Was stimmt an der Syntax nicht? Kann mir jemand ein Buch("C") emfehlen? Danke! #include <stdio.h> #include <string.h> void main () { char name[20]; printf("Bitte geben Sie einen Namen ein \n"); scanf("%s", name); \\ wie erkennt er den Inhalt von Name??? strcmp("name","Frank"); { if (strcmp == 0) printf("gut"); else printf("schlecht"); } } <FONT COLOR="#a62a2a" SIZE="1">[ 16. Juli 2001 10:58: Beitrag 1 mal editiert, zuletzt von HackTack ]</font>
16. Juli 200124 j Ich schließe mich meinem Vorredner an... Du vergleichst dort nämlich die Speicheradresse der Variable "name" mit dem String "Frank". Durch das "&" vor der Variable greifst du auf die Adresse der Variablen zu. Willst du auf den Inhalt zugreifen, laß das "&" einfach weg. Zwei Strings vergleichst du mit strcmp("String1","String2"); Hat strcmp den Rückgabewert 0 so sind die Strings gleich.
16. Juli 200124 j ausserdem: mit %c liest du nur einen einzigen buchstaben ein, mit %s kann man ne ganze kette einlesen buchtip ist kerningham/ritchie wie oben, da das die erfinder von C sind/ waren (leben die noch????) <FONT COLOR="#a62a2a" SIZE="1">[ 16. Juli 2001 08:59: Beitrag 1 mal editiert, zuletzt von [Hasi] ]</font>
16. Juli 200124 j <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von HackTack: <STRONG> char name[20]; // [...] scanf("%c",&name); // [...] </STRONG>
16. Juli 200124 j <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von HackTack: <STRONG>Hallo! Danke für eure Hife, habe das Programm umgeschrieben läuft immer noch nicht, was hab ich denn jetzt bloß falsch gemacht???? // [...] scanf("%s", name); \\ wie erkennt er den Inhalt von Name??? strcmp("name","Frank"); { if (strcmp == 0) printf("gut"); else printf("schlecht"); } }</STRONG>
16. Juli 200124 j @HackTack du kannst es auch mal so probieren: strstr(buffer1,"Teststep") buffer1 ist ein char-Array in dem der zu durchsuchende String steht Teststep ist das zu suchende Pattern also: if(strstr(buffer1,"Teststep")) printf("Ok"); else "tu was anderes"
16. Juli 200124 j <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Dagegen: <STRONG>@HackTack du kannst es auch mal so probieren: [...] also: if(strstr(buffer1,"Teststep")) printf("Ok"); else "tu was anderes"</STRONG>
16. Juli 200124 j dann checkst du halt nocu auf String-Ende oder Space ab: if(strcmp(name, "Frank\0") == 0) od. if(strcmp(name, "Frank ") == 0)
16. Juli 200124 j <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Shadax: <STRONG> // probier das mal: if(strcmp(name, "Frank") == 0) printf("gut"); else printf("schlecht"); // du hattest geprüft, ob "name" gleich "Frank" ist, // und nicht, ob der _Inhalt_ von name gleich "Frank" ist</STRONG>
16. Juli 200124 j oops, hab das korrektur posting weiter oben übersehen ... egal. <FONT COLOR="#a62a2a" SIZE="1">[ 16. Juli 2001 16:20: Beitrag 1 mal editiert, zuletzt von Poldi ]</font>
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.