Wie nehmen Sie den ersten Buchstaben von C-saite?
Möchte ich den ersten Brief von meiner firstname string-variable und fügen Sie es auf den zweiten Buchstaben des Nachnamens-variable.
Mein Programm so weit ist:
#include <stdio.h>
main() {
char firstname [256];
char lastname [256];
printf("What's your first name?: ");
scanf("%c",&firstname);
printf("What is your last name? ");
scanf("%s",&lastname);
printf("\nYour school.edu e-mail address is: %c%[email protected]",firstname,lastname);
return 0;
}
Allerdings würde ich gerne meinen code zu nehmen, den ersten Buchstaben (der erste Buchstabe des Vornamens) und speichern es in die variable firstname.
- Stehen Sie vor problem beim Zugriff auf ein array-element oder zu überschreiben, in einem bestehenden array?
- Warum haben Sie ein array von 256 Zeichen für "Vorname", wenn Sie nur daran interessiert sind, und speichern der ersten Zeichen?
- Freundlicherweise post die erwartete Eingabe und erwartete Ausgabe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als strings sind Arrays von Zeichen, die Sie benötigen, um das erste element aus dem array:
Beachten Sie auch, dass seit
lastname
undfirstname
sind Puffer, die Sie nicht brauchen, um einen Zeiger übergeben, um Sie inscanf
:Und eine Letzte Sache -
scanf
ist eine gefährliche Funktion, und Sie sollten es nicht verwenden.Angenommen, der Benutzer-Typen:
in Reaktion auf die erste Aufforderung. Die
%c
format liest dieM
; die%s
format liestichael
ohne sich die Mühe zu bekommen, keine neuen Daten.Auch Sie sollte nicht vorbei
&firstname
oder&lastname
; Sie sollte die Weitergabe nurfirstname
undlastname
zuscanf()
. Der Unterschied liegt in der Art; mit dem und-Zeichen, die Sie übergeben haben einchar (*)[256]
das ist nicht das gleiche wie diechar *
dassscanf()
erwartet. Sie mit ihm Weg erhalten, aber "Weg mit ihm" ist die operative Begriff.Verwenden
%s
- format (oder, besser,%255s
- format) für die beidenscanf()
Anrufe. Dann passfirstname[0]
undlastname
zuprintf()
. Möchten Sie vielleicht denken über die Verwendungtolower()
aus<ctype.h>
auf den ersten Buchstaben, und vielleicht auf den letzten Namen zu.Dies ist eine angemessene Annäherung an ein gutes Programm:
Vermeidet es eine ganze Menge von Problemen, die eine oder andere Weise. Es ist nicht ganz narrensicher, aber die meisten Menschen laufen nicht in Probleme mit ihm.
firstname[0]
wie das mitstrcpy()
. Auch Sie kann es nicht mitlastname[1]
, und Sie wahrscheinlich nicht wollen, tun es trotzdem (lastname
oder&lastname[0]
statt). Sie zugeordnet 50 bytes für die zusammengesetzten Namen, aber 256 für die letzten Namen; dies könnte zu Abstürzen führen.Ich denke, Sie wollen die variable Vorname zu speichern, nur die ersten.
So, dass Vorname handeln wie string.
Vorausgesetzt, erwartete Eingabe::
fname = Batman
lname = Joker
Erwartete Ausgabe::
Ihre school.edu e-mail-Adresse ist: [email protected]
Versuchen Sie dies::
Kopieren Sie zuerst den char aus c-string
Hinweis : der char '0' ist nur zum testen, später in der Anwendung