コード例 #1
0
int main (){
  int Casos, Case, Cont, Cont2;
  char String[53],String2[53];
  scanf("%d",&Casos);
  LimpaBuffer();
  for(Case=0; Case<Casos; Case++){
    fgets(String,53,stdin);
    TiraEnter(String);
    Cont = 0; Cont2 = 0;
    if(isalpha(String[Cont2])){
      String2[Cont] = String[Cont2];
      Cont++; Cont2++;
    }
    while(String[Cont2] != '\0'){
      if(isspace(String[Cont2]) && isalpha(String[Cont2+1])){
        Cont2++;
        String2[Cont] = String[Cont2];
        Cont++;
      }
      Cont2++;
    }
    String2[Cont]= '\n';
    String2[Cont+1]= '\0';
    printf("%s",String2);
  }
  return 0;
}
コード例 #2
0
ファイル: main.c プロジェクト: FlavScheidt/bcc
/**************
	Programa Principal
**************/
int main(int argc, char **argv)
{
	/***** Declaração de variáveis, listas e arquivos *****/
	FILE *fp;
	int i, id, c;
	float nota1, nota2;
	char codigo[MAXCOD];
	char nome[MAXNOM];
	char buf[MAXB];
	aluno *a, *alunos = NULL; //Inicia a lista de alunos
	matricula *m, *matriculas = NULL; //Inicia a lista de matriculas
	do // Enquanto c não for digitado, continua imprimindo o menu
	{
		ImrpimeMenu();
		scanf("%d%*c", &c);
		switch(c)
		{
			case 0:
				break;
			case 1: //Insere aluno
				printf("Digite a ID do aluno: ");
				scanf("%d%*c", &id);
				printf("Digite o nome do aluno: ");
				fgets(nome, MAXNOM, stdin);
				TiraEnter(nome);
				alunos = InsereAluno(id, strdup(nome), alunos);
				break;
			case 2: //Remove aluno
				printf("Digite a ID do aluno: ");
				scanf("%d%*c", &id);
				if(!EstaMatriculado(id, matriculas)) //Se o aluno estiver matriculado, não pode removê-lo
					alunos = RemoveAluno(id, alunos);
				else
					fprintf(stderr, "Aluno esta matriculado\n");
				break;
			case 3: //Insere matrícula
				printf("Digite o codigo da disciplina: ");
				fgets(codigo, MAXCOD, stdin);
				remove_pulo(codigo);
				printf("Digite a ID do aluno: ");
				scanf("%d%*c", &id);
				matriculas = inserir_matricula(strdup(codigo), id, matriculas);
				break;
			case 4: //Remove Matricula
				printf("Digite o codigo da disciplina: ");
				fgets(codigo, MAXCOD, stdin);
				remove_pulo(codigo);
				printf("Digite a ID do aluno: ");
				scanf("%d%*c", &id);
				matriculas = RemoveMatricula(codigo, id, matriculas);
				break;
			case 5: //Altera notas
				printf("Digite o codigo da disciplina: ");
				fgets(codigo, MAXCOD, stdin);
				TiraEnter(codigo);
				printf("Digite a ID do aluno: ");
				scanf("%d%*c", &id);
				printf("Digite a Primeira Nota: ");
				scanf("%f%*c", &nota1);
				printf("Digite a Segunda Nota: ");
				scanf("%f%*c", &nota2);
				AlterarNotas(matriculas, id, codigo, nota1,nota2);
				break;
			case 6:	//Procura aluno
				printf("Digite a ID do aluno: ");
				scanf("%d%*c", &id);
				ConsultaAlunos(id, alunos, matriculas);
				break;
			case 7:	//Procura alunos matrículados em uma disciplina
				printf("Digite o codigo da disciplina: ");
				fgets(codigo, MAXCOD, stdin);
				TiraEnter(codigo);
				ConsultaDisciplina(codigo, alunos, matriculas);
				break;
			case 8: //Carrega de um arquivo
				DestroiAlunos(alunos);
				DestroiMatriculas(matriculas);
				/***** Carrega alunos a partir do arquivo alunos.sav *****/
				if((fp = fopen("alunos.sav", "r")) == NULL) //Se houver algum erro ao carregar o arquivo, retorna erro
				{{
					fprintf(stderr, "Impossivel carregar\n");
					break;
				}
				do
				{
					fgets(nome, MAXNOM, fp);
					TiraEnter(nome);
					fscanf(fp, "%d%*c", &id);
					alunos = InsereAluno(id, strdup(nome),alunos);
				} while(!feof(fp));
				close(fp);
				/***** Carrega matriculas a partir do arquivo matriculas.sav *****/
				if((fp = fopen("matriculas.sav", "r")) == NULL) 
				{
					fprintf(stderr, "Impossivel carregar\n");
					break;
				}
				do {
					fgets(codigo, MAXCOD, fp);
					remove_pulo(codigo);
					fscanf(fp, "%d%*c", &id);
					fscanf(fp, "%f%*c", &nota1);
					fscanf(fp, "%f%*c", &nota2);
					matriculas = InsereMatricula(strdup(codigo), id, matriculas);
					AlteraNotas(matriculas, id, codigo,nota1, nota2);
				} while(!feof(fp));
				close(fp);
				break;
			case 9:
				a = alunos;
				/***** Salva lista de alunos no arquivo alunos.sav *****/
				if((fp = fopen("alunos.sav", "w")) == NULL)
					fprintf(stderr, "Impossivel salvar\n");
				else 
					while(a)
					{
						fprintf(fp, "%s\n", a->nome);
						fprintf(fp, "%d\n", a->id);
						a=a->next;
					}
				close(fp);
				m = matriculas;
				/***** Salva matriculas no arquivos matriculas.sav *****/
				if((fp = fopen("matriculas.sav", "w")) == NULL)
					fprintf(stderr, "Impossivel salvar\n");
				else 
				while(m)
				{
					fprintf(fp, "%s\n", m->codigo);
					fprintf(fp, "%d\n", m->id);
					fprintf(fp, "%f\n", m->nota1);
					fprintf(fp, "%f\n", m->nota2);
					m=m->next;
				}
				close(fp);
				break;
			default: //Qualquer outra opcao digitada retorna erro
				fprintf(stderr, "Opcao invalida\n");
				break;
		}
	} while(c);
	DestroiAlunos(alunos); //Destroi lista de alunos
	DestroiMatriculas(matriculas); //Destroi matrículas
	return(0);
}
void TiraEnter(char *s) //Remove o \n das strings lidas com fgets
{
	while(*s != '\0' && *s != '\n')
		s++;
	*s = '\0';
	}