Hi,
ich bin ein richtiger Anfänger und soll für\'s Studium (in C)zu Hause etwas programmieren. Ich habe schon mehrere Sachen probiert, doch immer kommen beim Compilieren Errors oder Warnings. Selbst, wenn ich nur noch Warnings habe und ich eine *.exe-Datei hinkriege, kommt die Windows-Meldung "Diese Anwendung wird ... geschlossen".
Könnt ihr mir nicht helfen?
Also, ich soll einen Satz, z.B. "Das ist ein Posting" nach dem Wort "Post" durchsuchen.
Zwei Strings zu vergleichen habe ich schon geschafft. Doch ein Satz nach einem Wort zu durchsuchen habe ich noch nicht geschafft. Wie kriege ich das hin (Quelltext).
Besten Dank ... Looper ...
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Hallo!
Probier mal das:
#include <stdio.h>
#include <string.h>
int main()
{
char *position, string1[80], string2[80];
printf("Bitte geben Sie den ersten String ein: ");
gets(string1);
printf("Bitte geben Sie den zu suchenden String ein: ");
gets(string2);
position = strstr(string1, string2);
if (position == NULL)
printf("Keine Übereinstimmung gefunden!\n");
else
printf("%s wurde an Position %d gefunden.\n",string2,position-string1+1);
return(0);
}
Gruß Martin!
Hi martinx24,
habe mal Deinen Quelltext ausprobiert. Bis auf ein paar Änderungen hat alles geklappt (z.B. musste ich "#include <stdio.h>" ändern, da ich sonst Errors angezeigt bekommen habe.)
Falls ich wieder nicht weiterkomme melde ich mich.
Grüße ... Looper ...
Hi,
ich hab' mal ein wenig ausprobiert. Doch leider komme ich nicht auf das Ergebnis.
Folgende Sache:
Ich muß eine Funktion
int findstr (char str1[], char str2[], int start)
{
}
definieren, die im main-Block dann aufgerufen werden muß. Dieser soll so aussehen:
void main (void) {
int i;
i = findstr ("Durchsuche diesen Text nach einem Wort.","suche",4); // ****
printf("\n\nRueckgabewert: %d",i);
printf("\nProgramm wurde erfolgreich beendet.\n\n");
}
Die Funktion soll so aussehen:
pos = findstr(string1, string2, start); // ****
start soll hierbei die Startposition darstellen.
str1 und str2 sollen Zeichenfelder sein, die mit Hilfe des call_by_Reference-Prinzips übergeben werden.
So ist die Aufgabenstellung.
Als Tip wurde folgender angegeben: Man soll eine Funktion entwerfen, die zwei Buchstaben miteinander vergleicht. In der Sprache C soll es üblich sein die ACII-Werte zu vergleichen. Den ASCII-Wert des Buchstaben char c; erhält man wie folgt:
int ascii_c
ascii_ = (int) c;
Ich hoffe das ist nicht zu viel verlangt und könnt mir helfen.
Grüße ... Looper ...
Hallo!
Verstehe ich das richtig:
1. Du schreibst ein Hauptprogramm. Dieses fragt Dich nach dem zu durchsuchenden String, dem zu suchenden String und einem Startwert.
2. Das Hauptprogramm ruft eine Funktion auf. Dieser werden die beiden Strings als Referenz, sowie der Startwert als Wert übergeben.
3. In dieser Funktion soll mit dem Suchen des Suchstrings in dem zu durchsuchenden String erst ab der Startposition begonnen werden. (nicht gleich vom Start weg)
4. Der Rückgabewert der Funktion soll die Position sein, wo das erste Zeichen des Suchstrings im zu durchsuchenden String gefunden wurde.
Fragen:
1. Ist das, so wie ich das geschildert habe korrekt? (besonders Punkt 4 - was soll genau der Rückgabewert darstellen...)
2. Darfst Du Funktionen wie "strstr" verwenden?
3. Bitte nenn mir Deine E-Mail-Adresse!
4. Bitte erklär mir nochmal genau die Geschichte mit dem Vergleichen von zwei Buchstaben. (ich dachte, Du suchst nach dem ganzen Wort)
5. Ein String ist eigentlich ein Feld von Zeichen. (Array) Also werden sowieso Zeichenfelder übergeben - oder? (Du schreibst: "str1 und str2 sollen Zeichenfelder sein")
6. Falls möglich: Nenn mir gleich die gesamte Aufgabenstellung...
Gruß Martin!
Hi,
Zu den Fragen:
1. ja, soweit ich da durchsteige, schon
.
.
.
3. meine e-mail ist nancy.kretschmann@web.de . Wenn Du mir eine e-mail schickst, kann ich die Aufgabe einscannen und sie Dir schicken. Dann wirst Du sehen, was ich meine. Ach übrigens sollen wir das am nächsten Dienstag präsentieren.
Grüße ... Looper ...
PS.: Find' ich echt toll, daß Du mir helfen willst.