Startparameter (",*)escapen



  • hi
    ich habe im moment ein kleines problem...
    ich habe eine kleine Anwendung die über Startparameter gestartet werden soll...
    in dieser eingabe dürfen keine " oder * sein...

    ich hatte überlegt dies mit std::regex oder boost::regex zulösen...
    jedoch frage ich mich gerade ob dies nicht vielleicht etwas über dimensioniert ist, da ich nur wissen muss ob diese enthalten sind und wenn ja dann abbruch... (also ich müsste nur feststellen ob diese enthalten sind, nicht berichtigen oder verbessern oder ähnliches)...
    ich hatte mir auch mal str.lenght angeschaut und dann das bitweise durchlaufen eines strings... aber das erscheint mir alles sehr umständlich... gibt es da vielleicht eine funktion die das implizit macht oder ähnliches? hab schon gegoogelt und nicht wirklich was gefunden außer die oben genannten sachen...

    hier nochmal ein kleiner codeschnipsel:

    int main(int argc,char *argv[])
    {
      if(argc==3)
      {
        //hier würde ich jetzt gerne den string auf " und * prüfen...
        if(argv[1].....)
        { 
          ........
        }
      }
    }
    

    hat da jemand vielleicht eine idee wie ich soetwas am besten lösen könnte?
    vielleicht funktionen oder beispiele oder ähnliches?

    lg 🙂


  • Mod

    if (argv[1][std::strcspn(argv[1], "*\"")])
    

    Oder noch einfacher:

    if (std::strpbrk(argv[1], "*\""))
    


  • Super das ist genau das was ich gesucht, gemeint habe! 👍
    Vielen vielen Dank! 😃
    Problem gelöst, kann geclosed werden! 🙄


Anmelden zum Antworten