Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

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

Bitte melde dich an um einen Kommentar abzugeben

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

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.5
Schwierigkeit: k.A.
Webcode: tuuj-552f
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Zu Aufgabenblatt hinzufügen