PHP :: Aufgabe #260
1 Lösung

Zeichenkette einlesen, auf 10 Wörter prüfen und jedes Vokal ersetzen
Anfänger - PHP
von Cara
- 02.04.2020 um 17:41 Uhr
Schreibe ein Programm welches den Benutzer auffordert eine Zeichenkette einzugeben. Diese Zeichenkette sollte mindestens 10 Wörter haben. Wenn diese Anforderung nicht gegeben ist, so wird erneut zur Eingabe aufgefordert, solange bis er 10 Wörter oder "exit" eingibt. Bei "exit" wird das Programm beendet.
Beinhaltet die eingegebene Zeichenkette mindestens 10 Wörter, so werden alle Vokale durch ein "i" ersetzt und ausgeben.
Beinhaltet die eingegebene Zeichenkette mindestens 10 Wörter, so werden alle Vokale durch ein "i" ersetzt und ausgeben.
Lösungen:
Leicht abgewandelte Aufgabe.
main.php
PHP-Code
replace.php
PHP-Code
Hier wird das main.php Skript mit zwei zusätzlichen Parametern aufgerufen werden.
Wobei der erste Parameter exakt 10 Wörter beinhaltet und der zweite weniger als 10.
main.php

<?php require_once 'replace.php'; array_shift($argv); // remove file name foreach ($argv as $arg) { echo '----------------' . PHP_EOL; echo 'STRING: ' . $arg . PHP_EOL; echo 'RESULT: ' . replace($arg) . PHP_EOL; }
replace.php

<?php function replace(string $str, string $replacement = 'i'): string { preg_match_all('/\S+/', $str, $matches); $wordCount = sizeof($matches[0]); if ($wordCount === 0) { return 'No words given!' . PHP_EOL; } elseif ($wordCount < 10) { return 'Only ' . sizeof($matches[0]) . ' words instead of 10 or more!'; } return preg_replace('/[aeiouAEIOU]/', $replacement, $str); }
Hier wird das main.php Skript mit zwei zusätzlichen Parametern aufgerufen werden.
Wobei der erste Parameter exakt 10 Wörter beinhaltet und der zweite weniger als 10.
Konsolenausgabe:
php main.php "eins zwei drei vier fünf sechs sieben acht neun zehn" "keine 10 wörter!"
----------------
STRING: eins zwei drei vier fünf sechs sieben acht neun zehn
RESULT: iins zwii drii viir fünf sichs siibin icht niin zihn
----------------
STRING: keine 10 wörter!
RESULT: Only 3 words instead of 10 or more!