Programma che inverte le sottostringhe

di
Anonimizzato27766
il
4 risposte

Programma che inverte le sottostringhe

Salve a tutti sto cercando di fare un programma che inverte tutte le sue sottostringhe formate da cifre numeriche lasciando invariato il resto. Esempio: as1234bc789h02468 diventerà as4321bc987h86420. Ho scritto tale codice ma quando lo compilo mi da "segmentation fault (core dumped)", non riesco a capire dove sbaglio... qualcuno può aiutarmi???
#include<stdio.h>
Void inverti_cifre(char *s){
Char *p,ch,*r;
While(*s){
      If((*s>=0)||(*s<=9)){          
        p=s;
      While((*s>=0)||(*s<=9))
        s++;
      
       r=s-1;
       While(p<r){
         ch=*p;
         *p=*r;
         *r=ch;
          p++;
          r--;
        }
    }
s++;
}
}
Int main(int argc,char *argv[ ]){
If (argc!=2){
Printf("numero illegale di parametri");
Return 1;
}
inverti_cifre(argv[1]);

Printf("%s",argv[1]);
Return 0;
}

4 Risposte

  • Re: Programma che inverte le sottostringhe

    0 = '\0' != '0'
    9 != '9'

    Oltre al fatto che la condizione deve essere AND e non OR
  • Re: Programma che inverte le sottostringhe

    Ma con cosa lo hai scritto?
    dal telefonino?
    le maiuscole sono tutte sbagliate
    ti manca un puntatore nella condizione della seconda while
  • Re: Programma che inverte le sottostringhe

    Messe a posto queste cose (anche quelle che ti ha segnalato _Achille) il programma funziona
    non sono sicuro che sia corretto toccare un parametro passato al main(), comunque funziona
  • Re: Programma che inverte le sottostringhe

    _Achille ha scritto:


    0 = '\0' != '0'
    9 != '9'

    Oltre al fatto che la condizione deve essere AND e non OR

    Grazie mille era questo il problema.
Devi accedere o registrarti per scrivere nel forum
4 risposte