zeichen aendern in einem string

rom24

Grünschnabel
hallo könnt ihr mir vielleicht weiterhelfen?

ich möchte eine void funktion in c schreiben, die in einem string jedes zeichen c1 durch ein zeichen c2 ersetzt
so hätte ich das gemacht aber leider funktioniert es nicht so richtig...

mfg vielen Dank im Voraus
Code:
void zeichen_aendern(char *str, char c1, char c2);

int main () // Beginn Hauptprogramm          **************************
{
char beispiel[]="Beispiel: wort1: wort1: ende";

	zeichen_aendern(beispiel, ':', '/');
	

return(0);


void zeichen_aendern(char *str, char c1, char c2)
{
	int i, j=0, leng=0;
	char *ers;

	for (i=0; i<=strlen(str);i++)
		if (str[i]!= c1)
			leng++;
	ers=(char*) malloc(sizeof(char)*(leng-1));

	for(i=0; i<=strlen(str);i++)
		if (str[i]!= c1)
		{
			c1=c2;
			ers[j++]=str[i];
		}
		ers[j]='\0';
		printf("%s\n", ers);
}
 
Willkommen im Forum!

Hier eine verbesserte Variante:

Code:
void zeichen_aendern(char *str,char c1,char c2)
{
  for(int i=0;i<strlen(str);i++)
  {
    if(str[i]==c1)
      srtr[i]=c2;
  }
}

Und bitte das nächste mal die Code-Tags verwenden!

Gruß
 
super vielen dank sheel, hast mir sehr weitergeholfen

schönen abend noch gruß rom24

p.s.: mache ich beim nächsten mal
 
Zurück