[gelöst]Anzahl Buchstaben im String
-
Ja hab ein Problem...
Mein Programm bis jetzt sieht wie folgt aus (ja es fehlt noch einiges, aber für das jetzige Problem - irrelevant):
#include <stdlib.h> #include <stdio.h> #define ANZAHL 256 int main() { // VARIABLEN (Lokal) char Auswahl; char Zeichenkette[ANZAHL]; int i; //Schleifenvariable do { // Intro printf("\n"); printf("\nZeichenketten analysieren\n\n"); printf("Waehlen Sie Bitte aus:\n\n\n"); // Eingabe printf("\tZeichenkette eingeben E\n"); printf("\tLaenge der Zeichenkette L\n"); printf("\tUmgekehrt darstellen U\n"); printf("\tAnzahl Grossbuchstaben G\n\n"); printf("\tProgramm schliessen S"); Auswahl = getch(); // Verarbeitung switch (Auswahl) { case 'E': case 'e': system("cls"); printf("Geben Sie Bitte ihre gewuenschte Zeichenfolge ein"); printf(" und bestaetigen Sie mit Enter\n\n"); printf("Ihre Eingabe: "); fgets(Zeichenkette, ANZAHL, stdin); system("cls"); break; case 'L': case 'l': system("cls"); int Anzahl = 0; for(i=0;i<=256;i++){ if(Zeichenkette[i]==""){ printf("Laenge der Zeichenkette: %d", Anzahl); } else{ Anzahl++; } } break; case 'S': case 's': return (0); break; default: break; } }while(Auswahl==Auswahl); // Ausgabe system ("PAUSE"); /* Nur während der Entwicklungsphase, später löschen! */ return (0); }
Wie ihr seht, wird bei der Switch Anweisung - nach dem man auf "E" oder eben "e" drückt der String eingelesen und in das Array Zeichenkette[ANZAHL] gespeichert... Bei der eingabe von "L" für Länge - sollte jetzt die Länge des Strings, also aller Zeichen berechnet werden (ich wills nicht mit der schon vorhandenen Bibliothek machen) -> Mein Ansatz siehe im Code (oder oben)::
case 'L': case 'l': system("cls"); int Anzahl = 0; for(i=0;i<=256;i++){ if(Zeichenkette[i]==""){ printf("Laenge der Zeichenkette: %d", Anzahl); } else{ Anzahl++; } } break;
Wieso geht das nicht?= Eine Warnung erscheint "Compariosn between pointer and integer", was kann ich machen? Der Algorithmus stimmt so oder?
Vielleicht sollte ich noch erwähnen, dass ich seit kurzem erst mit C Programmiere
MfG
-
So sieht der Prototype für die strlen-Funktion aus. Sie ermittelt die Länge eines Strings. Musst noch die "string.h" einbinden.
strlen(const char *str);
-
Länge eines Strings ohne strlen() ermitteln: http://www.c-plusplus.net/forum/254077
-
alogheo schrieb:
Länge eines Strings ohne strlen() ermitteln: http://www.c-plusplus.net/forum/254077
Schöne Idee
Der Threadersteller wollte auf dies hinaus denke ich, die Methode aus alogeos Thread sollte aber bevorzugt werden.
case 'L': case 'l': system("cls"); int Anzahl = 0; for(i=0;i<ANZAHL;i++){ // ANZAHL als Abbruchbedingung if(Zeichenkette[i] == '\0') { // mit char vergleichen printf("Laenge der Zeichenkette: %d", Anzahl-1); // -1 break; // hier rausbreaken } else{ Anzahl++; } } break;
-
vielen Dank, für die Antworten, werde es gleich morgen ausprobieren und hier nochmals posten MfG und ja, ich wollte es ohne strlen lösen
-
Hat geklappt, thx