führende "0" aus zeichenkette entfernen <meinung gefragt>



  • #include <stdio.h>
    
    void rem(char *arr);
    
    int main(int argc,char **argv)
    {
    	char arr[] = "0fuehrende 0 weg im text0bleibt sie";
    	rem(arr);
    
    	puts(arr);
    
    	return (0) ;
    }
    
    void rem(char *arr)
    {
    	int x=0;
    
    	while(arr[x]) 
    	{ 
    		if(arr[x]=='0'&&x==0) arr[x]=' ';
    		else if(arr[x]=='0'&&arr[x-1]==' ')	arr[x]=' ';
    		x++;
    	}
    }
    

    mfg hohesC



  • Also ich meine eine führende char(0) oder auch '\0'. Soll laud Thread beides weg.



  • aso hab mir nicht ganz durch gelesen!

    mfg hohesC

    [edit]er schrieb aber von "0" so einer null!!! naja egal..[/edit]



  • Höö? Ist doch egal ob char oder int oder long ode double oder bool... 0=false

    int main()
    {
        char test = '\0';
        if(test)
        {
            printf("%s", "true");
        }
        else
        {
            printf("%s", "false :P");
        }
    }
    

    🕶

    edit:

    if ( sero[i] != '0' && sero[i] != '\0' || t>0 )
    

    Ist aus seinem Source...



  • Du blickst es nicht! 😃

    Ich habs überflogen und dachte er wollte die

    char c='0';
    

    nullen raushaben!!!
    und die liefert nicht null sondern den int wert 48!!!

    mfg hohesC :p



  • Er will beides raus.



  • hab ich jetzt auch bemerkt 😉



  • FireFlow schrieb:

    Er will beides raus.

    Wollen kann man viel. Ob's sinnvoll ist, ist eine andere Sache. ( wir sprechen von Zeichenketten, ofmals auch 0-terminierte char-arrays genannt ).
    Kurt



  • char *kill_the_nulls (char* s)
    {
        while (*s && *s == '0')
            s++;
        return s;    
    }
    
    int main()
    {
        char *s = "000102";
        printf("%s\n", kill_the_null(s)); 
    }
    


  • Na wenn Du einfach Vornullen aus ´nem "Char*" entfernen willst um ein "int" zu kriegen, sollte es eigentlich "atoi(char*)" machen. Wenn du´s später wieder wandeln willst, gibt´s ´ne Menge Möglichkeiten
    "itoa()", "sprintf()" .
    Letztes formatiert es Dir dann auch wieder.



  • ZuK schrieb:

    FireFlow schrieb:

    Er will beides raus.

    Wollen kann man viel. Ob's sinnvoll ist, ist eine andere Sache. ( wir sprechen von Zeichenketten, ofmals auch 0-terminierte char-arrays genannt ).

    Stimmt, aber man kann C abgewöhnen, sowas unter einer Zeichenkette zu verstehen. Prinzipiell geht das, die Infrastruktur (strn..) ist vorhanden, nur muß man sich extra Arbeit machen; darum versagen manche Programme unter Unix auf typischen Binärdateien, obwohl es die ja eigentlich gar nicht gibt.


Anmelden zum Antworten