Christian Bruun wrote:
>> Mit forslag:
>
>> void censor(char *tekst)
>> {
>> int i;
>> for(i = 0; i < strlen(tekst) - 3; i++)
>> {
>> if(tekst[i] == 'f' && tekst[i+1] == 'o' && tekst[i+2] == 'o')
>> {
>> tekst[i] = 'x';
>> tekst[i+1] = 'x';
>> tekst[i+2] = 'x';
>> }
>> }
>> }
>
> Tak for inspiration
Opdagede også at mit første forslag går i
> uendelig løkke hvis der er et foX (X forskellig fra o)
>
> void censor2(char *tekst)
> {
> do {
> if (*tekst == 'f') {
> if ((*(tekst+1) == 'o') && (*(tekst+2) == 'o')) {
> *(tekst) = 'x';
> *(tekst+1) = 'x';
> *(tekst+2) = 'x';
> tekst += 2;
> }
> }
> tekst++;
> } while(*tekst);
> }
Jeg synes ikke at brug af pointer fremfor array og dobbelt if
gør koden mere læsbar.
Arne