Salve, come da titolo avrei un problema...
ho un file con all'interno i seguenti dati da acquisire :
codice:
3 + 9
4 * 2
123 - 27
messi così in modo casuale. Li ho acquisiti e memorizzati in array di stringhe, ognuna delle quali contiene una riga (ho usato questo tipo di acquisizione perché il compito richiedeva di farlo in questo modo). Adesso il mio problema è che devo creare una funzione
codice:
void Esegui_Operazioni(char [][NCAR], int [], int);
che "...prende in ingresso la matrice di char contenente le operazioni, il
vettore di interi destinato a contenere i risultati di ogni operazione e il numero di operazioni (righe
della matrice) da effettuare. Effettua le operazioni, determinando il primo operando, l'operazione
e il secondo operando (si deve effettuare una conversione da ascii a numerico) e immagazzina il risultato nel vettore dei risultati." 


Ecco ciò che mi è uscito fuori :
codice:
void Esegui_Operazioni(char str[][NCAR], int r[], int n)
{
int i=0,j=0;
int op1=0,op2=0, opr=0;
char *temp1,*temp2;
for(i=0;i<=n-1;i++){
op1=0;
op2=0;
opr=0;
for(i=0;i<=n-1;i++){
op1=0;
op2=0;
opr=0;
for(j=0;j<NCAR;j++){
if(isdigit(str[i][j])!=0){
if(op1!=0 && op2==0){
op2=str[i][j]-48;
}else{
if(op1==0 && op2==0){
op1=str[i][j]-48;
}
}
}
if(str[i][j]==45 || str[i][j]==42 || str[i][j]==47 || str[i][j]==43){
opr=str[i][j];
}
}
if(opr==43){
r[i]=op1+op2;
}else{
if(opr==45){
r[i]=op1-op2;
}else{
if(opr==42){
r[i]=op1*op2;
}else{
if(opr==47){
r[i]=op1/op2;
}
}
}
}
//printf(" opr=%d op1=%d op2=%d\n",opr,op1,op2);
}
}
}
Il problema viene fuori quando c'è da acquisire dalle stringhe un numero con più di 1 cifra (come è logico che sia da come ho scritto il codice), vorrei sapere, se è possibile, un vostro parere su come acquisire i numeri 123 e 27 nell'ultima stringa...