replace String



  • Hi zusammen,
    bin ein Einsteiger in c, und hab gerade eine replace-Funktion für eine Zeichenkette (in C) geschrieben, leider funktionierts nicht und ich weiß leider nicht warum ... könnte mir bitte wer kurz helfen?

    #include <stdio.h>
    #include <stdlib.h>

    int main (void){
    char *satz ="hallo";
    printf("%s",satz);
    printf("\n");
    int i=0;

    while(satz[i]){
    if(satz[i]=='a'){
    satz[i]='b';
    }
    }

    printf("%s",satz);

    return 0;
    }

    mfg Andreas



  • Du hast vergessen das i zu erhöhen... So ist es eine Endlosschleife.
    Bei solchen Aufgaben solltest du eine forschleife nehmen... Muss man aber nicht...

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main (void)
    {
    	char *satz ="hallo";
    	int i;
    
    	printf("%s",satz);
    	printf("\n");
    
    	for(i=0;i<strlen(satz);i++)
    	{
    		if(satz[i]=='a')
    			satz[i]='b';
    	}
    	printf("%s",satz);
    
            return 0;
    }
    


  • ja stimmt, Inkrementierung hatte ich vergessen ... aber leider läuft die version mit for bei mir auch nicht!, hast du's ausprobiert?



  • Bei mir hat es funktioniert.
    Was kommt den bei dir für ein Fehler?



  • Andreas85 schrieb:

    leider läuft die version mit for bei mir auch nicht!

    Tja, das liegt daran, das die Initialisierung eines Zeigers immer auf einen KONSTANTEN Speicherbereich verweist weshalb man für änderbare Speicherbereiche wie in deinem Fall besser Arrays nimmt.

    char *ichverweiseaufwaskonstantes = "0815";
    char ichverweiseaufwasaenderbares[] = "4711";
    


  • dankeschön, jetz läufts 🙂


Anmelden zum Antworten