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;
}