C-Funktion Abbruchkriterium while-schleife



  • Hallo zusammen,
    ich hab ein Problem mit einer Funktion für euch wahrscheinlich trivial aber ich hab noch nicht so viel Programmiererfahrung.

    void getm2number(char datensatz[100], int *p_stelle, int *p_entscheidungm2){
    
    	int i= *p_stelle;
    
    		while(datensatz[i]!='$')
    		{
    			if(isdigit(datensatz[i]))
    			{
    				*p_entscheidungm2 = true;
    			}
    			else
    			{
    				*p_entscheidungm2 = false;
    			}
    			i++;
    		}
    		i++; /*Stelle vom $-Zeichen dazuzählen*/
    		*p_stelle=i;
    		return;
    }
    

    Diese Funktion soll nen String nach den Kriterien in der Funktion absuchen bis ein $-Zeichen kommt. Jetzt hab ich das Problem wie ich abfangen kann wenn kein $-Zeichen in dem String ist dass das keine Endlosschleife wird. Ist wahrscheinlich eine Kleinigkeit 🙂 aber ich komm nicht drauf. Besten Dank für eure Hilfe.
    Gruß Danjo



  • Hi Danjo, in C wird ein String immer einem 0-Byte terminiert. Du müsstest also die Bedingung in deiner Schleife etwas anpassen.

    while( datensatz[i] && datensatz[i] != '$' )
    {
      ...
    }
    

Anmelden zum Antworten