/* a. Escreva uma funcão com protótipo int strcmp(char u[MAX], char v[MAX]); que recebe duas strings u e v e devolve: 0 se as strings u e v são iguais; -1 se v vem antes de u na ordem alfabética 1 se v vem depois de u na ordem alfabética b. Escreva um programa que leia um inteiro 0 < n <= 1000, e um vetor com n nomes (cada nome tem no máximo 100 caracteres), e verifica se os nomes estão em ordem alfabética. */ #include #define MAX2 5 #define MAX 101 #define verdadeiro 1 #define falso 0 int stricmp (char u[MAX], char v[MAX]); int stricmp(char u[MAX], char v[MAX]) { int i = 0, ord = 0; while (u[i] != '\0' && v[i] != '\0' && ord==0){ if (u[i] < v[i]) ord = 1; else if (u[i] > v[i]) ord = -1; i++; } if (ord == 0 && u[i] == '\0' && v[i] != '\0') ord = 1; else if (ord == 0 && u[i] != '\0' && v[i] == '\0') ord = -1; return (ord); } int main() { int n, i, alfabetica = verdadeiro; char nomes[MAX2][MAX]; /* nomes[0]: [ "jose da silva" ] [1]: [ "carlos eduardo" ] */ printf("Digite o número de nomes: "); scanf("%d", &n); printf("Digite os nomes:\n"); for (i = 0; i < n; i++){ scanf(" %[^\n]", nomes[i]); } for (i = 0; i < n; i++){ printf("%s\n", nomes[i]); } for (i = 0; i < n - 1; i++) if (stricmp(nomes[i], nomes[i+1]) == -1) alfabetica = falso; if (alfabetica){ printf("Nomes em ordem alfabetica\n"); } else{ printf("Nomes nao estao em ordem alfabetica\n"); } return (0); }