Inhalt der Argumente argv[] prüfen

Chris Hunter
Ich hab ein problem waseigentlich garkeins sein sollte,weil ich bin wieder so hirschig und mir fällts nicht ein wie es geht. Folgende Sache:

Einem Programm wird ein parameter übergeben z.B. /s

wie kann ich jetzt improgramm prüfen ob der parameter übergeben wurde oder nicht.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:

if(argv[1]=="/s")
{
  prog_start();
} 
else
{
  just_info();
}



ruft immer just_info auf. weil argv[x] ja ein pointer auf ein char ist... wie erhalte ich denn nun den inhalt an der position der speicherstelle der in dem pointer angegeben ist? Hab so lange C-pause gemacht das mir selbst sowas nicht mehr einfällt. ich habe die chars bei argv[1] schon mit sprintf ausgegeben und der pointer zeigt auf den string '/s' nur wie kann ich das in dem if abfragen?

tut mir leid für die dumme frage *duck*
ThiefMaster
Versuch mal das hier:

if(!strcmpi(argv[1],"/s"))
Chris Hunter
ich hatte es bereits mit strcmp gelöst...
worin besteht der unterschied zwischen strcmp und strcmpi?

dankefür die info so long...
ThiefMaster
Zitat:
Original von Chris Hunter
worin besteht der unterschied zwischen strcmp und strcmpi?
kA
Aber in einem anderen Code wurde immer strcmpi verwendet:
php:
1:
2:
3:
4:
<?php if(!strcmpi(pMsg->message"TurnOn"))
{
    /*.....*/
?>
Chris Hunter
na gut, wenn ich den unterschied rausgefunden hab werde ich ihn hier posten, dann weist dus auch Augenzwinkern
Hanfling
strcmpi() macht im Gegensatz zustrcmp() keinen Unterschied zwischen Upper- und Lowercase.

(vgl. http://www.mathworks.com/access/helpdesk...ef/regexp.shtml ( Google-Suche < 1 min ) )

btw. vieleicht noch für andere Intressante ne Lösung wie man nen Argument findet wenn mehrere angeben werden und dieses nicht auf dieser Postion ist:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
#include <iostream>
using namespace std;

int main( int argc, char *argv[] )
{
  if ( argc == 1 ) 
  {
    // keine Argumente da außerder Umgebungsvariable (argv[0])
    cout << "no arguments" << endl;
  } 
  else
  {
    for ( int i = 1; i < argc; i++ )
    {
      if ( !strcmpi( argv[i], "/s" ) )
      {
        // was machen willst bei /s
        cout << "S-Mode on" << endl;
      }
    }
  }
  getchar();
  return 0;
}