Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Wie kann ich in C den 2. Vornamen prüfen?

Hallo allerseits, ich möchte mit folgendem Code ein kleines Konsolenprogramm schreiben und nach den Namen (Vornamen 2x, Fam. Namen und Adresse) fragen. Allerdings ist es bis jetzt so, wenn ich keinen zweiten Vornamen angebe dann nimmt er Vor- und Nachnamen als 1. + 2. Vornamen und die nächste Eingabe als Nachnamen. Das stimmt natürlich nicht. Deshalb meine Frage: Wie prüfe ich auf die richtige Eingabe. Wie erreiche ich das das Feld 2. Vorname leer bleibt falls kein zweiter Vorname eingegeben wird?

Mfg
Gagamello

<code>/* --- The following code comes from F:\lcc\lib\wizard\textmode.tpl. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
      {
   char vorname1[21];
   char vorname2[21];
   char name[21];
   char adresse[100];
   char kuerzel[3];

   printf ( " Geben Sie Vorname und Name ein: ");
   scanf ( "%s %s %s", vorname1, vorname2, name);
   fflush( stdin);
   printf( "Adresse: " );
   gets (adresse);
   kuerzel[0] = vorname1[0];
   kuerzel[1] = vorname2[0];
   kuerzel[2] = name [0];
   kuerzel[3] = 0;
   printf( " \nName: %s, Vorname1: %s, Vorname2:%s,Kuerzel: %s\n",name, vorname1, vorname2,kuerzel);

   printf( "Adresse: %s\n", adresse);

}

 </code>


Antworten zu Wie kann ich in C den 2. Vornamen prüfen?:

Hi,
du könntest vorname2 definieren:

char vorname2 = " ";

Somit ist wen keine eingabe erfolgt die variable vorname2 automatisch space (wenn du "a" definieren würdest käme natürlich "a")

« Letzte Änderung: 09.02.04, 14:38:55 von matze-ulm.de »

hi
ich will programmieren lernen ich weis aber überhaupt nichts.Was sollte ich da machen soll ich da bücher ausleihen von der bibliothek oder oder soll ich mich im internet informieren
also ich weis garnichts
alles kommt mir irgendwie sehr schwer vor
z.b ich möchte gerne spiele programmiern
erstmal kleine dan bischen größere .usw.

Meine frage an dich was soll ich jetzt tun.
ich würde mich freuen wenn du deine antwort zh meine e-mail addresse sendest.

tach,

was matze da sagt stimmt so nicht, weil scanf die variable sowieso überschreibt. Es ist also egal was da vorher drinsteht.
Das Problem liegt vielmehr darin, dass man mit scanf() (soweit ich weiss) keine Leerstrings einlesen kann.

Aber um das Problem zu lösen kannst Du folgendes machen.  
Initialisiere den Nachnamen, also Deine Variable "name" mit einem Leerstring. Nachdem scanf() die Eingabe eingelesen hat überprüfst Du einfach ob die Variable name noch leer ist (mit strcmp). Ist das der Fall, so wurde offensichtlich kein 2.Vorname eingegeben, ergo kopierst Du den Inhalt vom 2.Vonamen in die Variable Name (mit strcpy) und weist der Variable 2.Vorname einen Leerstring zu, dann haste was Du wolltest.

kleiner Nachtrag:

Um auf Nummer sicher zu gehen machste das mit der Variablen name am besten so:

name[0] = '\0';    // string terminieren

scanf( .... )

if( strlen(name) == 0 )
{
    // es wurde kein 2. vorname eingegeben ->kopieren
}
else
{
   // 2. Vorname wurde eingegeben
}


« BC++6 und WinsockTurbo Pascal Spiel Memory »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...

QR-Code
QR-Codes, die Abkürzung für "Quick Response Codes", sind eine Form von zweidimensionalen Barcodes. Damit lassen sich Informationen schnell und effizient speiche...