#c - Strings Vergleichen groß-kleinschreibung ignorieren

Hiho!

habe eine Programmiertechnische Frage:

Ich würde gern zwei Strings vergleichen dabei aber die große Kleinschreibung ignorieren wollen.

mit strcasestr(String, "suchstring") kann ich zwar vergleichen aber die Funktion ignoriert die Groß -Kleinschreibung leider nicht :/

Bisher habe ich dafür keinen halbwegs praktikablen Ansatz gefunden.

Freue mich über Denkanstöße!

Danke, Klaschni

stackoverflow.com/questions/9935642/how-do-i-use-strcasestr

Oder, wenn einer der Texte ein fester konstanter Vergleichsstring ist und der andere modifiziert werden kann, den andern erst in einer Schleife per tolower() wandeln.

tolower() geht soweit ich das herausgefunden habe nur mit char[] aber nicht mit Strings.

Deswegen ja das

michael_x: den andern erst in einer Schleife per tolower() wandeln.

Klaschni: tolower() geht soweit ich das herausgefunden habe nur mit char[] aber nicht mit Strings.

Die ganzen C String Funktionen gehen nicht mit Arduino String Objekten. Das ist der große Nachteil davon.

Hab meinen String zum Array gemacht und alles klein. Nun kann ich direkt mit meinem vergleichsstring vergleichen :slight_smile: danke!

String tolowerString(String text){

  String returntext;
  char strConverted[text.length()+1];
  text.toCharArray(strConverted,text.length()+1);
  
  for(int i=0; i < text.length(); i++){  
    strConverted[i] = tolower(strConverted[i]);
    returntext += strConverted[i];
  }
  return returntext;
}

strcasestr wäre auch nicht mit den unnötigen Arduino-Sting Objekten gegangen.

Je früher du dir die String Objekte abgewöhnst, desto besser. OT und nicht ganz ernst gemeint: simplify your life

Wieso dieser Aufwand? Du kannst doch auch über String Objekte direkt iterieren und jedes einzelnes Zeichen ändern. text[index] geht und liefert das aktuelle Zeichen!

Abgesehen davon hat die String Klasse auch eine fertige Methode dafür: http://www.arduino.cc/en/Reference/StringToLowerCase

Danke das ist einfacher :) dann so. wieder was gelernt :)

Arduino kann kein #c sondern C und eine Teilmenge von C++ Grüße Uwe

Arduino kann nur seinen Assembler-Code ausführen.
Die Arduino IDE benutzt einen vollwertigen GCC C++ Compiler ohne besondere Einschränkungen.
Einige C++ übliche Bibliotheken sind zu groß oder zu speicherfressend um auf einem Arduino zu laufen und fallen deswegen aus.