Sorting strings alphabetically using C
Source Code
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void reorder(int n, char *x[]);
int main(){
int i , no_string;
char *x[10];
printf("Enter the no of strings: ");
scanf("%d",&no_string);
printf("Enter the strings: \n");
for(i = 0; i < no_string; i++){
x[i] = (char*) malloc (12*sizeof(char));
printf("string %d: ",i+1);
scanf("%s", x[i]);
}
printf("The sorted strings are: ");
reorder(i,x);
for(i = 0; i < no_string; i++){
printf("\nstring %d: %s", i+1, x[i]);
}
return 0;
}
void reorder(int n, char *x[]){
char *temp;
int i,item;
for(item = 0; item < n-1; ++item){
for(i = item+1; i < n; ++i){
if(strcmp(x[item],x[i]) > 0){
temp = x[item];
x[item] = x[i];
x[i] = temp;
}
}
}
return;
}
Output

Hello ! I have some questions on this program. Why should I type scanf("%s", x[i]) instead of scanf("%s", &x[i]) ? Is that related to pointer declaration?