Zeichenketten

S

soso

Jungspund
Hallo!
Wir haben ein Problem mit unserem C-Programm (unter Unix)... Es gibt immer einen Segmentation fault aus... :think:
Die erste Funktion soll die Anzahl der Großbuchstaben einer Zeichenkette ausgeben (wir haben versucht es mit den Ascii-zahlen zu regeln) und die zweite soll die Zeichenkette umdrehen (statt hallo soll ollah rauskommen)...
hier erstmal unser kläglicher Versuch: :(

PHP:
#include <stdio.h>

int laenge(char *z) 
{
	int l = 0;
	while (*z != '\0')
	{
	 l++;
	 z++;
	}
	return l;
}


int buchstaben(char *z0)
{
	int i, anzahl = 0, *z2;
	for (i = 0; i < laenge(z0); i++)
	{
	 z2[i] = z0[i];
	 if (z2[i] > 90) anzahl = anzahl;
	 else if (z2[i] >= 66) anzahl++;
	}
	return anzahl;
}


int umdrehen(char *z1)
{
	int h, i;
	for (i = 0; i <= laenge(z1)/2-1; i++) 
	{
		z1[i] = h;
		z1[i] = z1[laenge(z1)-2-i];
		z1[laenge(z1)-2-i] = h;
	}
	return z1;
}

main ()
{
	char *zeichenkette, *zeichenkette2;
	printf("Gib ein Wort ein: ");
	scanf("%s",&zeichenkette);
	printf("Das Wort hat %d Großbuchstaben.\n", buchstaben(zeichenkette));
	printf("Gib ein Wort ein: ");
	scanf("%s",&zeichenkette2);
	printf("Wort umgedreht: %s\n",umdrehen(zeichenkette2));
}

Was machen wir falsch?? kann uns jmd weiterhelfen?? :hilfe:
 
Hi,
Ihr wollt in den Variablen zeichenkette(2) Strings speichern, diese sind aber Pointer auf char.
Also müsst ihr das ganze abändern in
Code:
char zeichenkette[STRLEN];
Das wär ein Fehler. Viel genauer hab ichs mir noch nicht angeschaut.
Ein 'A' wird übrigens durch 65 repräsentiert.
Ihr könnt auch char's untereinander vergleichen, also auf
Code:
(z[i] >= 'A' && z[i] <= 'Z')
prüfen.
Falls ihr mit gcc kompiliert, setzt noch ein "-Wall" mit hin.
 
vllt solle man noch erwähnen, dass wir die Stringfunktionen der C-Bibliothek bei diesem Programm nicht benutzen dürfen...
 
Danke für die hilfe!!!!!
Programm läuft jetzt ^^:D
 

Ähnliche Themen

C Code Hilfe!!! gesucht bei Dezimalzahl in Binärzahl for loop

Unix Webserver mit HTML Seite erstellen

Port generieren, wenn nicht dann

GCC liefert in Eclipse Kompilierfehler

Prozesskommunikation mit PIPES - wie funktioniert das?

Zurück
Oben