2016-09-24 3 views
0

Ich bekomme einen Fehler (4, um genau zu sein), wenn ich versuche, "i < n" in meiner for-Schleife zu verwenden. Wenn ich es herausnehme, bekomme ich eine Endlosschleife. Ich kann auch nicht scheinen, dass die if-Anweisung ausgeführt wird. Irgendwelche Gedanken darüber, was ich verbessern kann?cs50 Initialen pset2 unerwarteter Fehler

int main() 
{ 
    int i; 
    int n; 
    //Program to get the user's name and reply with their capitalized initials 
    { 
    //Ask user for their name 
    printf("What is your full name?\n"); 
    } 
    //look for 1st character of each part of name given 
    string name = GetString(); 

    for (i = 0; (n = strlen (name)); i < n; i++) 
    { 
     printf("Your intitals are %c", toupper(name[0])); 
     { 
      if (isspace(name[i])) 
      { 
      printf("%c", toupper(name[i+1])); 
      } 
     printf("!\n"); 
     } 
    } 
    return 0; 
} 
+0

Wahrscheinlich möchten Sie nur einmal die Nachricht 'Ihre Initialen' drucken, nicht einmal pro Zeichen, das der Benutzer eingibt. Du weißt nicht einmal, dass hinter dem Raum ein Buchstabe steht; Sie könnten am Ende ein Null-Zeichen drucken, was keine gute Idee ist, obwohl es nicht so viel schadet. Der Glückwunsch "! \ N" 'sollte auch außerhalb der' for' Schleife liegen. –

Antwort

0

Ihre for() Syntax ist falsch. Dort können nur 2 ; Zeichen drin sein. Wenn Sie mehrere Variablen initialisieren möchten, trennen Sie sie mit ,, nicht ;.

for (i = 0, (n = strlen (name)); i < n; i++)