Über char, strchr, while schleife
-
BITTE HILFE !!!
GEGEBEN IST DIESE CODE PROGRAMM:
char* acSuch;
char szText3[] = "uhu, hier ist ein aha?";
while(acSuch=strchr(szText3, 'u')) *acSuch = 'o';
while(acSuch=strchr(szText3, 'a')) *acSuch = 'u';
while(acSuch=strchr(szText3, 'o')) *acSuch = 'a';
szText3[21] = '!';
puts(szText3);FRAGE: WAS IST DIE ANWORT DIESE CODE PROGRAMM ?
-
@Dario1-3 sagte in Über char, strchr, while schleife:
while(acSuch=strchr(szText3, 'u')) *acSuch = 'o';
Was macht denn diese Zeile?
-
@Swordfish Hab das Prinzip leider noch nicht verstanden!
Eine Antwort Vorschlag bitte vielleicht. Ich kann nur prüfen ob, es richtig ist.
-
@Swordfish Die while schleife(So lange etwas nicht, dann ) und strchr(sucht einen Character in einen string). acSuch ist die variable ?
Ich hab schon mehreren Vorschäge getippt , aber leider alles falsch. Deswegen frage ich bitte erstmal, um Vorschläge.Danke im Voraus.
-
@Dario1-3 sagte in Über char, strchr, while schleife:
So lange etwas nicht, dann
Ne, solange die Bedingung wahr ist läuft die
while()
-Schleife. Wahr ist alles außer0
(auchNULL
).Lies nach was
strchr()
macht: strchr.
Wohin zeigt acSuch beim 1. Durchlauf der erstenwhile()
-Schleife? Wohin beim 2. Durchlauf? Was geschieht bei jedem Durchlauf?
-
@Swordfish Sie können auch was erstmal als Antwort vorschlagen. Ich prüfe im Sekunde Zeit und sage ihn , ob es richtig ist
-
Ich weiß was dabei rauskommt. Ich brauche keine "Überprüfung" von irgendwo ob das stimmt was ich weiß.
-
@Swordfish Ich kann die Fragen leider nicht antworten !
Können Sie bitte dann, was als Antwort vorschlagen ?
-
@Swordfish Okay können Sie mir bitte dann eine detaillierte Erklärung, wie Sie auf der Lösung kommen, damit ich dann das Prinzip verstehe ?
Danke.
-
@Swordfish Es heiß, dass Sie mir nicht helfen wollen ?
hab gerade diese strchr gelesen , aber versteh noch nicht
-
strchr()
sucht in dem String auf den der erste Parameter zeigt nach dem ersten Vorkommen des Zeichens das als zweiter Parameter übergeben wird:
strchr("abcdedcba", 'c')
gibt einen Zeiger auf das erste'c'
in der Zeichenkette "abcdedcba" zurück.char str[] = "abcdedcba"; char *p = strchr(str, 'c');
p
zeigt jetzt auf das erste'c'
in der Zeichenkette. Für Deinewhile()
-Schleifen wichtig: der Rückgabewert der jeweils inacSuch
gespeichert wird ist nichtNULL
solange das gesuchte Zeichen gefunden wird.
Im ersten Schleifenkörper wird die Position an der'u'
gefunden wurde mit'o'
überschrieben. Dann wird wieder gesucht ... und wieder ersetzt ... solange bis das gesuchte Zeichen nicht mehr gefunden werden kann weil alle Vorkommen ersetzt wurden.strchr()
gibt dannNULL
zurück und die Schleife bricht ab.
Dann kommt die nächstewhile()
-Schleife die genau gleich aufgebaut ist, nur mit anderen Buchstaben.
szText3[21] = '!';
ersetzt das Fragezeichen durch ein Rufzeichen.
-
@Dario1-3 sagte in Über char, strchr, while schleife:
@Swordfish Es heiß, dass Sie mir nicht helfen wollen ?
Dario, das ist hier kein Chat. Du brauchst nicht im Minutentakt Nachrichten raushauen.
-
@Swordfish SORRY!
-
@Dario1-3
Installiere doch mal eine Entwicklungsumgebung inklusive Compiler, setze ein neues Projekt auf, füge deinen Code in die main() Funktion ein und debugge dein Programm Schritt für Schritt.Dann siehst du was dein Programm macht bzw. ausgibt. Ich denke dass das besser verständlich für dich ist.