?
Se immetto una stringa con scanf la stringa viene salvata nell'apposita cella iesima del vettore di stringhe, se poi c'è il terminatore non lo so, dovrebbe esserci di default!
Quando lo eseguo semplicemente immetto 10 stringhe di sole lettere e basta, il resto viene eseguito correttamente, tranne l'ultima parte.
Lo riposto completo:
Codice:
#include <stdio.h>
#include <string.h>
#define M 100
#define N 10
#define BIG 1000
typedef char str100[M];
typedef char str1000[BIG];
int findMinS(str100 v[], int l, int s){
int i, pos;
str100 min;
strcpy(min, v[s]);
pos=s;
for(i=s; i<l; i++){
if(strcmp(v[i], min)==-1){
strcpy(min, v[i]);
pos=i;
}
}
return pos;
}
void selSort(str100 v[], int l){
int i, min;
str100 t;
for(i=0; i<l-1; i++){
min=findMinS(v, l, i);
strcpy(t, v[i]);
strcpy(v[i], v[min]);
strcpy(v[min], t);
}
return;
}
int main(){
str100 vect[N];
int i;
for(i=0; i<N; i++){
printf("Inserisci la stringa %d: ",i);
scanf("%s",&vect[i]);
}
printf("\n");
selSort(vect, N);
for(i=0; i<N; i++)
printf("%s \n",vect[i]);
printf("\n");
str1000 all;
for(i=0; i<N-1; i++){
strcat(all, vect[i]);
strcat(all, "#");
}
strcat(all, vect[N-1]);
printf("%s",all);
return 0;
}
Compilandolo non mi dà alcun errore, tra l'altro