strstr mit ohne case sensitive?



  • Argh .. jetzt hab ich was durcheinandergebracht. Der Code kam von wem anders und wurde auch von wem anders kritisiert. Hier war es eine idee, die kritisiert wurde. Ändert aber wenig daran, dass dein verhalten unangemessen war.



  • @darktom:

    wer hat wann und wo einen Originalposter (d.h dich) gedisst 😕 ?

    Tatsache ist nur, je mehr man über die Anforderungen weiß, um so gezielter und geeigneter werden die Lösungs-Vorschläge sein. Da du zuerst im MFC-Forum gepostet hattest, wollte ich mit meinem Hinweis auf die CString-Methode MakeUpper bzw. MakeLower hinweisen, die dazu (evtl.!) geeignet wären, darum war ich verwundert, warum du auf diese Methode nicht kommst, das hat aber nichts mit Dissen zu tun, sondern sollte eher meine Verwunderung ausdrücken, denn wenn man mit MFC programmiert, arbeitet man schon mal mit CStrings, und dann sind die genannten Methoden bekannt. Jetzt, wo sich das ganze in das C-Forum verlagert hat, kann man zu tolower/toupper greifen, wie Windalf's Code vorführt.

    MfG



  • ⚠

    darktom schrieb:

    wow, 7 köpfe, 7 lösungen...
    danke erstmal an alle, windalf dei code scheint ma am vernünftigsten, aber zum glück(?) hat sich das erledigt 🕶 , ahh, ohne stress ins weekend
    cya tom

    mehr kann ich dazu auch nicht mehr sagen...die ganze sache war schon abgehakt bevor sie überhaupt angefangen hat!
    wer dann wann was zu wem über wessen code sagt/schreibt und wie andere darauf reagieren, oder nicht, bleibt jedem einzelnen überlassen, denk ich mal, aber wenns dennis hier etwas zu forsch umgeht... :p



  • Windalf schrieb:

    das hab ich diesmal nicht verdient... Ich hab mir echt mühe gegeben...die parameter der funktion haben sprechende namen.. ich habe eingerückt... usw... was ist denn diesmal daran so furchtbar?

    das - statt dem !=
    weiters sind die variablennamen ne katastrophe. Als ich checken wollte, ob dein code korrekt ist, bin ich an den 3 variablen gescheitert.



  • bin ich an den 3 variablen gescheitert.

    erzähl mir mal keine märchen... wer von uns beiden hat denn nun mehr plan von c/c++... den bären lass ich mir nicht aufbinden 😃



  • @Windalf
    Die Übergabeparameter sind ja noch in etwa sprechend, aber was zum Hänker bedeutet p q und r?? 🤡 😉



  • p ist der zeiger auf die aktuelle position im string str ab der momentan verglichen wird...
    q und der zeiger der von position von p aus anfängt keyword (auf dessen anfang r jeden schleifendurchlauf gesetzt wird) mit r zu vergleichen...

    was willst du denn da für sprechende namen nehmen?

    char *zeiger_auf_aktuelle_zu_vergleichende_position_in_str;

    da bleib ich lieber gleich bei p,q und r...



  • curpos? 🙂

    MfG SideWinder



  • @sidewinder
    ist schon mal ne nette idee leider trifft das auf alle 3 zu... curpos1 bis 3 wohl auch nicht auf viel gegenliebe... 😉



  • Windalf schrieb:

    @sidewinder
    ist schon mal ne nette idee leider trifft das auf alle 3 zu... curpos1 bis 3 wohl auch nicht auf viel gegenliebe... 😉

    selbst i, j und k sind besser als p, q und r :p;)

    MfG SideWinder



  • selbst i, j und k sind besser als p, q und r

    find ich nicht... i,jund k nutze ich als integerzählervariablen... wenns pointer sind fang ich halt bei p an...



  • @Windalf
    Wie wärs mit:

    strpos = p
    keypos = r
    curpos = q



  • @AJ
    Jo die sind gut... leider würde ich erstmal ne stunde brauchen um mir solche namen zu überlegen da hab ich das proggie schon zig mal implementiert... 😞



  • Hmmm wenn du wirklich eine Stunde dafür brauchst, dann solltest du üben. (ernst gemeint!)



  • AJ schrieb:

    Hmmm wenn du wirklich eine Stunde dafür brauchst, dann solltest du üben. (ernst gemeint!)

    Full ACK



  • geht euch das denn nicht so... ihr habt ein problem wisst oft sofort wie ihr das lösen könnt ohne lange nachzudenken... aber dann muss man den variablen irgendwelche namen geben... wenn ich darüber nachdenke wie ich die dinger nenne mach ich nur bei der implementierung fehler... ich könnte höchstens im nachhinein ein ersetzer rüberlaufen lassen...
    naja meine hobby-proggies muss ja zum glück nur ich lesen (und die fragenden in dem forum 😃 )...
    ausserdem glaubt ihr ja auch beide an den standard... 😉



  • Hmm nein eigentlich gehts mir andersrum, ich weiß wie meine Variablen heißen hab aber keine Ahnung vom Algorithmus, vielleicht sollten wir ein Team bilden 😉

    MfG SideWinder



  • @sidewinder
    *rofl*

    naja ich meinte damit eher so kleine problemchen (0815alogs) wie dieses eben...das bekomm ich in 3 minuten schnell hingehackt...

    wenn ich allerdings drüber nachdenken muss wie ich die dummen variablen nenne brauch ich mindestens doppelt so lange und ausserdem mach ich dann ständig fehler...,(die dann viel debugzeit kosten)

    wenn ich dann mal was komplexeres schreiben muss wo mir nicht sofort die lösung einfällt ist das ja noch schlimmer wenn ich an den algo denken muss und mir auch noch gleichzeit sprechende variablennamen ausdenken muss( die dinger heissen bei mir fast alle help,temp ,a b c d usw...)

    vermutlich löst du auch wesentlich komplexere probleme als ich der das nur mal so zum spass macht...



  • Okay in diesem Fall können die Variablen heißen wie sie wollen, weil jeder weiß was damit gemeint ist. Ein Kommentar wie "// strstr() case insensitive" sagt jedem Programmierer sofort was Sache ist.

    Bei einem Lehrbeispiel wie hier wär aber ein Replace nicht schlecht.

    Aber wenn der Algorithmus komplex ist, gehts mir mit sprechenden Variablennamen viel leichter. Wenn ich dann mal mehr als 5 Variablen habe die alle bloß Einbuchstabig bin und ich in der 4. Schleifenebene plötzlich nicht mehr weiter weiß kann ich alles hinwerfen weil meine Variablen nichts aussagen.

    Wenn da die Variable aber statt p curpos heißt fällt mir wieder ein wo ich eigentlich gerade im String herumpfusche.

    Meine Meinung. Vielleicht tust du dir wirklich leichter mit deinen Kürzel, aber wenn der Code für andere auch zu lesen sein soll sind entweder sprechede Variablennamen oder viele Kommentare von Nöten.

    MfG SideWinder



  • Also ich kann mir nicht vorstellen, dass es mit nichtssagenden Variablennamen leichter sein sollte. Bei einfachen kurzen Algorythmen mag es ja noch funktionieren, dass man sich die Bedeutung der nichtssagenden Variablen merkt während der Implementierung. Aber versuch mal den Algorythmus am nächsten Tag oder noch schlimmer eine Woche später so einfach zu erweitern. Da wirst du dann wohl oder über den ganzen Algorythmus nochmal durchdenken müssen, um überhaupt rauszubekommen welche Variable für was zuständig ist. Bei sprechenden Namen weißt du normalerweise sofort für was die Variable steht. Und um so länger der Algorythmus wird, um so leichter tut man sich mit den sprechenden Variablennamen.

    Und wegen dem Überlegen. Ich glaube ich würde länger überlegen, welchen Buchstaben ich noch nicht als Variablennamen verwendet habe, als dass ich mir einen sprechenden Namen einfallen lasse. Meistens weiß man ja auch schon was man mit der Variable machen will, also bekommt sie auch einfach ein entsprechenden Namen.

    Es ist also nicht nur für andere besser, sondern auch für einen selber sprechende Variablennamen zu verwenden. Denkt mal drüber nach.


Anmelden zum Antworten