Keine Ausgabe mit Parameterübergabe an Main



  • Hey Leute, mein Problem:

    Ich möchte ein Programm schreiben das einen Parameter an die Main übergibt. Dieser soll dann mit dem Alphabet verglichen werden (unabhängig von Klein- und Großschreibung) und die jeweilige Anzahl der Buchstaben soll ausgegeben werden.

    Die Ausgabe soll folgendermaßen aussehen:

    Für "Mississippi River":

    E:1
    I:5
    M:1
    P:2
    R:2
    S:4
    V:1

    Für "Voll krasses Programm"

    A:2
    E:1
    G:1
    K:1
    L:2
    M:2
    O:2
    P:1
    R:3
    S:3
    V:1

    Folgender Code ist bisher vorhanden, allerdings gibt dieser nur bei einem normalen Array eine wie oben beschriebene Ausgabe aus.

    Mit einem Parameter der an die Main übergeben wird zeigt er keine Ausgabe 😕

    #include "stdlib.h"
    #include "stdio.h"
    
    int main(int argc, char* argv[])
    {
    
    	int i;
    	int count =0;
    	char zaehler;
    
    	for (zaehler = 'A'; zaehler <= 'Z'; zaehler++){
    		for (i=0;*argv[i] != '\0' ;i++){
    
    				if ((zaehler == *argv[i]) || (zaehler + 32 == *argv [i])){
    					count++;
    				}
    
    		}
    		if(count !=0){
    		printf("%c:%d\n",zaehler, count);
    		}
    		count = 0;
    	}
    
    	return 0;
    }
    

    Danke schon mal 👍



  • - Zeile 1+2: für Standard-Header benutzt man spitze Klammern <> und nicht ""
    - du hast aufs Geratewohl Zeiger benutzt ohne zu wissen, was da passiert (machen alle Anfänger, kann man lernen wenn man denn will)
    - 'A'...'Z','a'...'z' ist nicht standardkonform kontinuierlich, "+32" schon gar nicht
    - mache dir das Leben einfacher indem du einen Zeiger für das 1. main Argument benutzt und die for-Schleifen vertauscht

    int main(int argc, char* argv[])
    {
      const char *arg = argv[1];
      int i;
    
      for(i=0;arg[i]!='\0';++i)
      {
         ... Test arg[i] auf Buchstabe + Zählung
      }
      ...
    }
    

Log in to reply