größte Zahl in einer Textdatei ermitteln
-
hi leute,
ich möchte die größte Zahl die in einer Textdatei ist ermitteln(z.B 90),
also die zahl ist mir bis jetzt noch nicht bekannt, deswegen kann ich nicht einfach vergleichen.
und ich möchte diese dann in einer int Variable speichern.ich habe die textdatei eingelesen und in einem char array gespeichert.
nur wie gehts jetzt weiter?
-
Wichtig zu wissen ist, wie denn dein Array aussieht. 12,90,3 oder 12 90 3?
Du muss nur den String Parsen und anschliessen mit atoi in einen Integer schreiben.
-
Mit atoi (oder atof, falls FLießkommazahlen), kannst du deine Zahlenstrings in richtige Integer (oder floats) umwandeln. Der Rest sollte offensichtlich sein.
-
SeppJ schrieb:
Mit atoi (oder atof, falls FLießkommazahlen), kannst du deine Zahlenstrings in richtige Integer (oder floats) umwandeln. Der Rest sollte offensichtlich sein.
Oder besser man: strtol und man: strtod. Zum Parsen könnte man: strtok nützlich sein, oder auch nicht.
-
das problem ist. der inhalt sieht ungefähr so aus:
1, blabla;
2, blaba;
3, balba;
4, blabla;
-
Da kann dir ev, der Befehl strchr, bzw strstr weiterhelfn.
-
metapoint2011 schrieb:
das problem ist. der inhalt sieht ungefähr so aus:
...Könnte man einfach mit strtol() (und unter Umständen strtok()) durchgehen.
metapoint2011 schrieb:
Da kann dir ev, der Befehl strchr, bzw strstr weiterhelfn.
Von so einem Gefrickel rate ich ab, die Standard-Bibliothek kann Zahlen in Strings selbst erkennen.
-
metapoint2011 schrieb:
ich habe die textdatei eingelesen und in einem char array gespeichert.
Super.
Du hast jetzt also ein char[] befüllt oder ist es doch ein char *[]?
-
nein, weil ich da den wert schon wissen müsste.
denn strchr ist zum vergleichen.
es ist z.B. char test[500];
-
denn strchr ist zum vergleichen.
Wo hast du den so ein sch**** gelernt?
-
Jürgen Wolf
also es ist da um einen String zu suchen oder nicht?
und da muss ich ja den wert schon kennen
-
metapoint2011 schrieb:
ist da um einen String zu suchen oder nicht?
strstr() sucht String, strchr() sucht Zeichen.
-
ja stimmt. aba trozdem hilft mir das nicht weiter.
-
metapoint2011 schrieb:
naja gut okay. aba trozdem hilft mir das nicht weiter.
strtok und strtol helfen auch nicht?
-
ja dann hab ich alles zerlegt. und wie finde ich jetzt die größte zahl?
-
Binggi schrieb:
Wo hast du den so ein sch**** gelernt?
metapoint2011 schrieb:
Jürgen Wolf
Ist das jetzt ein Scherz oder liest du ernsthaft den Wolf?
-
metapoint2011 schrieb:
ja dann hab ich alles zerlegt. und wie finde ich jetzt die größte zahl?
Zum Beispiel so:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <limits.h> int main(void) { char test[] = "1, blabla;\n" "2, blaba;\n" "3, balba;\n" "4, blabla;\n"; char const * const delims = ",; \n"; int const base = 10; long max = LONG_MIN; for (char *token = strtok(test, delims); token != NULL; token = strtok(NULL, delims)) { char *end; long number = strtol(token, &end, base); if (end == token) continue; printf("Zahl gefunden: %ld\n", number); if (number > max) max = number; } printf("Groesste Zahl: %ld\n", max); }
Edit:
Ein zweitesconst
fürdelims
spendiert.
-
ja, bin gerade dabei mir ein gutes Buch zu bestellen. und so lange habe ich die Onlineversion von dem gelesen und 100 andere online Tutorials die alle echt schlecht sind.
da war das noch eins davon das man am besten Versteht, finde ich.
-
funktioniert nicht.
du hast da die base also 10. und wenn es z.b. 20 sind? und nicht nur 10?
so bricht das programm sofort ab.so würde ich ja sozusagen schon fasst wissen was die größte zahl ist.
wenn die zahlen 0,1,2,3,4,5... halt nach der reinfolge sind.wie es auch in der datei is.
-
metapoint2011 schrieb:
funktioniert nicht. da muss ich doch wieder vergleichen.
Was denn vergleichen?
metapoint2011 schrieb:
du hast da die base also 10. und wenn es z.b. 20 sind? und nicht nur 10?
Die Basis deines Zahlensystems musst du schon selbst wissen.
metapoint2011 schrieb:
so bricht das programm sofort ab.
Seltsam, bei mir läuft das ohne Warnungen. Wie äussert sich der Absturz?