Teilstring ersetzen (Zeichenketten)
Schreiben Sie ein Programm, das in einem String einen Teilstring sucht und diesen durch einen anderen Text ersetzt. Prototyp:
ersetze(original: string, teil: string, ersetzung: string): string
Beispiele:
ersetze("hello universe", "uni" , "multi" ) -> "hello multiverse"
ersetze("jonathan" , "jonat", "kernig") -> "kernighan"
ersetze("bin auf neinva", "nein" , "ja" ) -> "bin auf java"
Bemerkung: Diese Aufgabe ist so elementar, dass die meisten Programmiersprachen bereits Lösungen dazu anbieten.
0 Kommentare
6 Lösung(en)
def ersetze(original, teil, ersetzung):
s=original.replace(teil,ersetzung)
return s
print ersetze("hello universe", "uni" , "multi")
print ersetze("gockelhan" , "gockel", "kernig")
print ersetze("bin auf neinva", "nein", "ja")
Ersetz : proc(gesamt, von, nach, resultat);
dcl BUFSIZE dec fixed(31) value(1024);
dcl gesamt char(BUFSIZE) varying;
dcl von char(BUFSIZE) varying;
dcl nach char(BUFSIZE) varying;
dcl resultat char(BUFSIZE) varying;
dcl start bin fixed(31);
dcl end bin fixed(31);
start = index(gesamt, von);
end = start + length(von) - 1;
resultat = substr(gesamt, 1, start - 1) !!
nach !!
substr(gesamt, end + 1, length(gesamt) - end);
end Ersetz;
Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)
/*************************************\
|* Globale Deklarationen. (Global.inc) *|
\*************************************/
%dcl BUFSIZE CHAR;
%BUFSIZE = '1024';
%dcl TRUE CHAR;
%TRUE = "'1'b";
%dcl FALSE CHAR;
%FALSE = "'0'b";
/* END of INCLUDE FILE */
-----------------------------------------------------------------------
%include Global;
Ersetz : proc(gesamt, von, nach) returns(char(BUFSIZE) varying);
dcl gesamt char(BUFSIZE) varying;
dcl von char(BUFSIZE) varying;
dcl nach char(BUFSIZE) varying;
dcl resultat char(BUFSIZE) varying;
dcl start bin fixed(31);
dcl end bin fixed(31);
start = index(gesamt, von);
end = start + length(von) - 1;
resultat = substr(gesamt, 1, start - 1) !!
nach !!
substr(gesamt, end + 1, length(gesamt) - end);
return(resultat);
end Ersetz;
Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)
let str, res;
/*---------------------------------------------------*\
| javaScript kennt die string-methode »replace()«, um |
| einen teilstring zu ersetzen |
\*---------------------------------------------------*/
str = 'hello universe';
res = str.replace('uni', 'multi');
// res = 'hello multiverse'
str = 'jonathan';
res = str.replace('jonat', 'kernig');
// res = 'kernighan'
str = 'bin auf neinva';
res = str.replace('nein', 'ja');
// res = 'bin auf java'
/*---------------------------------------------------*\
| mit string-parametern wird allerdings nur das erste |
| vorkommen im ziel-string ersetzt |
\*---------------------------------------------------*/
str = "hello universe, let's uniply";
res = str.replace('uni', 'multi');
// res = "hello mutiverse, let's uniply"
str = 'jonathan, what makes you so jonat';
res = str.replace('jonat', 'kernig');
// res = 'kernighan, what makes you so jonat'
str = 'bin auf neinva. ja, neinva';
res = str.replace('nein', 'ja');
// res = 'bin auf java. ja, neinva'
/*---------------------------------------------------*\
| um alle vorkommen zu ändern, braucht man einen |
| regulären ausdruck mit globalem selektor |
\*---------------------------------------------------*/
str = "hello universe, let's uniply";
res = str.replace(/uni/g, 'multi');
// res = "hello multitiverse, let's multiply"
str = 'jonathan, what makes you so jonat';
res = str.replace(/jonat/g, 'kernig');
// res = 'kernighan, what makes you so kernig'
str = 'bin auf neinva. ja, neinva';
res = str.replace(/nein/g, 'ja');
// res = 'bin auf java. ja, java'
Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)
// NET 6.x | C# 10.x | VS-2022
var lst = new List<(string source, string oldString, string newString)> {
("hello universe", "uni", "multi"),
("jonathan", "jonat", "kernig"),
("bin auf neinva", "nein", "ja"),
};
lst.ForEach(l => Console.WriteLine($"{l} -> {l.source.Replace(l.oldString, l.newString)}"));
Lösung von: Jens Kelm (@JKooP)
// C++ 14 | VS-2022
#include <iostream>
#include <vector>
#include <regex>
struct ReplaceSet {
const std::string& str;
const std::string& old_str;
const std::string& new_str;
};
std::string replace(ReplaceSet r) {
return std::regex_replace(r.str, std::regex(r.old_str), r.new_str);
}
int main() {
std::vector<ReplaceSet> v{
{ "hello universe", "uni", "multi" },
{ "jonathan", "jonat", "kernig" },
{ "bin auf neinva", "nein", "ja" }
};
for (const auto& r : v)
std::cout << replace(r) << "\n";
}
Lösung von: Jens Kelm (@JKooP)
Aktionen
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung:
Meta
Zeit: | 0.5 |
Schwierigkeit: | k.A. |
Webcode: | tuuj-552f |
Autor: | Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch) |