Untitled
unknown
plain_text
8 months ago
2.7 kB
9
Indexable
Never
#include <stdio.h> int contaVogais (char *s) // == char s[] ? { int i; int contar = 0; for (i = 0; s[i]!='\0';i++) { if(s[i] == 'a'||s[i] == 'e'||s[i] == 'i'||s[i] == 'o'||s[i] == 'u')// n estou a ver as maiusculas { contar+=1; } } return contar; } int retiraVogaisRep (char *s) { int contar, i,j = 0; char aux [50]; char pc; for ( i = 0; s[i] != '\0'; i++) { pc = s[i]; if(s[i] == 'a'||s[i] == 'e'||s[i] == 'i'||s[i] == 'o'||s[i] == 'u') { if (s[i+1] != pc) { aux[j] = s[i]; j++; } else { contar++; } } else { aux[j] = s[i]; j++; } } aux[j] = '\0'; //colocar end of string no final printf("%d %s\n", contar,aux); } int retiraVogaisRep2 (char *s) { int contar,i,j = 0; char pc; for ( i = 0; s[i] != '\0'; i++) { pc = s[i]; if(s[i] == 'a'||s[i] == 'e'||s[i] == 'i'||s[i] == 'o'||s[i] == 'u') { if (s[i+1] == pc) { contar++; for(j = i; s[j]!='\0';j++) { s[j] = s[j+1]; } i--; // importante para o i ficar na mesma posição do indice depois de remover a vogal. depois deste loop acabar i é incrementado ali em cima // mas como desloquei todos os chars para a esquerda tenho de garantir que permanece na mesma posição para ver a vogal que esta a seguir // se apenas houvesse 2 vogais seguidas funcionava na mesma sem i--; } } } printf("%d %s",contar,s); } int duplicaVogais (char *s) { int contar,i,j = 0; char pc; char aux [50]; for (i = 0, j = 0; s[i] != '\0'; i++) { aux[j++] = s[i]; // é equivalente a aux[j] = s[i]; e depois fazer j++; if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u') { aux[j] = s[i]; j++; } } aux[j] = '\0'; printf("\n%s",aux); } int main () { char c [50]= "Estaa e umaa string coom duuuplicadoos"; // Strings sao sempre listas de chars. Posso definir um tamanho qq (nunca inferior ao tamanho da string) ou //deixar o compilador definir automaticamente printf("%d\n",contaVogais (c)); retiraVogaisRep(c); char cc [50]= "Estaa e umaa string coom duuuplicadoos"; retiraVogaisRep2(cc); char d [50] = "ola sou eu"; duplicaVogais(d); }
Leave a Comment