void main(){ char string1[] = "palavra qualquer"; char string2[] = "palavra qualquer"; char string3[] = "outras qualquers"; assert(false == comparaString(string1, string3, 16)); assert(true == comparaString(string1, string2, 16)); assert(false == comparaString(string2, string3, 16)); }
/* Procura, por busca binaria, no vetor vet_a por um struct que tem nusp 'nusp'. Devolve o indice de tal struct se existir, ou -1 caso contrario. */ int indiceDisciplina( char disciplina[] ) { int left = 0, right = numDisciplina - 1, i, compara; while( left <= right ) { i = (left + right) / 2; compara = comparaString( vet_d[ i ].sigla, disciplina ); if( compara == 0 ) return i; else if( compara < 0 ) { right = i - 1; } else { left = i + 1; } } return -1; }
/* Realiza a matricula do aluno com 'nusp' em 'disciplina', registrando o log em 'fp_saida'. */ void matriculaAluno( int nusp, char disciplina[], FILE *fp_saida ) { int al = indiceAluno( nusp ), mid, compara; pAluno_Disciplina p, prev = NULL, obj; if( al == -1 ) { fprintf( fp_saida, "\tErro: Aluno de nUSP '%d' nao existe.\n", nusp ); return; } mid = indiceDisciplina( disciplina ); if( mid == -1 ) { fprintf( fp_saida, "\tErro: Disciplina '%s' nao existe.\n", disciplina ); return; } for( p = vet_a[al].inicio; p != NULL; p = p->prox_disc ) { if( p->ind_disc == mid ) { fprintf( fp_saida, "\tErro: Aluno de nUSP '%d' ja matriculado em '%s'.\n", nusp, disciplina ); return; } else if( p->ind_disc > mid ) break; prev = p; } obj = malloc( sizeof( Aluno_Disciplina ) ); if( !obj ) masterError("Erro ao reservar memoria para Aluno_Disciplina"); obj->ind_aluno = al; obj->ind_disc = mid; obj->prox_disc = p; if( prev == NULL ) vet_a[al].inicio = obj; else prev->prox_disc = obj; prev = NULL; for( p = vet_d[mid].inicio; p != NULL; p = p->prox_aluno ) { if( comparaString( vet_a[ p->ind_aluno ].nome, vet_a[ al ].nome ) < 0 ) break; prev = p; } obj->prox_aluno = p; if( prev == NULL ) vet_d[mid].inicio = obj; else prev->prox_aluno = obj; fprintf( fp_saida, "\tAluno de nUSP '%d' matriculado em '%s' com sucesso.\n", nusp, disciplina ); }
int main() { char s1[128], s2[128], c; int i; while(42) { i = 0; while( (c = fgetc( stdin )) != ' ' && c != '\n' ) { s1[i] = c; i++; } s1[i] = '\0'; i = 0; while( (c = fgetc( stdin )) != ' ' && c != '\n' ) { s2[i] = c; i++; } s2[i] = '\0'; printf("'%s','%s': %d\n", s1, s2, comparaString( s1, s2 ) ); } return 0; }
main(){ char classe[12], classe2[9], classe3[11]; bool comparaString(char c[], char c2[]); /*definindo função de comparacao de strings*/ scanf("%s %s %s", &classe, &classe2, &classe3); /*recebendo strings de classes de animais*/ if(comparaString("vertebrado", classe)){ /*verificando se a primeira string digitada eh igual a vertebrado*/ if(comparaString("ave", classe2)){ /*verificando se a segunda string digitada eh igual a ave*/ if(comparaString("carnivoro", classe3)) printf("aguia"); /*verificando se a terceira string digitada eh igual a carnivoro*/ else if(comparaString("onivoro", classe3)) printf("pomba");/*verificando se a terceira string digitada eh igual a onivoro*/ } else if(comparaString("mamifero", classe2)){ if(comparaString("onivoro", classe3)) printf("homem"); else if(comparaString("herbivoro", classe3)) printf("vaca"); } } else if(comparaString("invertebrado", classe)){ if( comparaString("inseto", classe2)){ if(comparaString("hematofago", classe3)) printf("pulga"); else if(comparaString("herbivoro", classe3)) printf("lagarta"); } else if(comparaString("anelideo", classe2)){ if(comparaString("hematofago", classe3)) printf("sanguessuga"); else if(comparaString("onivoro", classe3)) printf("minhoca"); } } printf("\n");/*Pula linha os fim dos condicionais*/ return 0; }