Gangstaslida
2005-04-13, 16:26:14
Wenn ich mit
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
int main(void)
{
char ,eingabe[21];
printf("Maximal 20 Zeichen eingeben: ");
scanf("%s",eingabe);
int a;
a=strlen(eingabe);
printf("\n %s hat %d zeichen",eingabe, a);
}
Die Länge eines Strings abfrage, kommt er nur bis zum ersten Leerzeichen. Wenn ich z.B. "Gangsta Slida" eingebe, gibt er nur a=7 aus.
Ich könnte natürlich den String mit einer For-Schleife durchgehen, bis er zum Nullterminierten Ende kommt, gehts irgendwie einfacher? :frown:
edit: Gibt es eigentlich einen Bufferowerflow, wenn ich mehr als 21 Zeichen eingebe :|
Hmm, sollte wohl noch ne Abfrage einbauen ;D
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
int main(void)
{
char ,eingabe[21];
printf("Maximal 20 Zeichen eingeben: ");
scanf("%s",eingabe);
int a;
a=strlen(eingabe);
printf("\n %s hat %d zeichen",eingabe, a);
}
Die Länge eines Strings abfrage, kommt er nur bis zum ersten Leerzeichen. Wenn ich z.B. "Gangsta Slida" eingebe, gibt er nur a=7 aus.
Ich könnte natürlich den String mit einer For-Schleife durchgehen, bis er zum Nullterminierten Ende kommt, gehts irgendwie einfacher? :frown:
edit: Gibt es eigentlich einen Bufferowerflow, wenn ich mehr als 21 Zeichen eingebe :|
Hmm, sollte wohl noch ne Abfrage einbauen ;D