Exercícios propostos sobre Strings

Usando os conceitos ensinados aqui em nossa apostila de C, especificamente sobre Strings em C, crie funções que façam as seguintes tarefas:

Clique aqui e obtenha seu certificado de programação C! Entre já no Mercado de Trabalho!

Exercícios sobre Strings em C

00. Crie uma função que transforma todos os caracteres de uma string em maiúsculos.

01. Crie uma função que transforma todos os caracteres de uma string em minúsculos.

02. Crie uma função que recebe uma string e um caractere, e retorne o número de vezes que esse caractere aparece na string.

03. Crie uma função que recebe uma string e um caractere, e apague todas as ocorrências desses caractere na string.

04. Crie uma função que mostra os caracteres de uma string são repetidos.

05. Crie uma função que retira todas os caracteres repetidos de uma string.


Desafio 00: Strings Emo
Crie uma função que recebe uma string e transforma alguns dos caracteres em maiúsculos e outros em minúsculos. Faça sorteios com a função rand() para gerar números aleatórios em C, que serão usados para escolher os índices dos caracteres que serão alterados.


Desafio 01: Strings que gaguejam
Crie uma função que duplique cada caractere da string.





4 comentários:

Ricardo Oliveira disse...

Realmente muito boas esse tutorial c. Estou aprendendo bastante.

Contudo, no que diz respeito ao exercício 5 sobre strings estou com dificuldade de retirar os caracteres repetidos da string.

Se puder dar uma luz sobre isso eu ficaria bastante grato.

Roberto GMJ disse...

Tb penei um cado pra fazer a 5 mas pensei na seguinte logica vou dividi as tarefas em partes primeiro com 'for' correndo e analisando qual caractere se repete no que se repetir marquei eles com valor 'null' depois corri outro 'for' descartei os valores null substituindo pelos valores seguintes no array. Com certeza deve haver outras milhares de formas e ate melhores de fazer isso.

minha funcao ficou assim:

char *delrpts(char str[]){
int count;
int ccount;
char tmprpt;

for(count=0;str[count]!='\0';count++){
for(ccount=(count+1);str[ccount]!='\0';ccount++){
tmprpt = str[count];
if(tmprpt == str[ccount]){
str[count] = -1;
str[ccount] = -1;
}
}
}

for(count=0;str[count]!='\0';count++){
if(str[count] == -1){
for(ccount=count;str[ccount]!='\0';ccount++){
str[ccount] = str[(ccount+1)];
}
}
}



return str;

}

Rayller disse...

Por favor, estou muito agarrado no exercício 4, não consigo finalizar ele. Se alguem tiver feito, me de uma ajuda, por favor.

Anônimo disse...

Tentei fazer a número 00, na função strmsc(transforma em maiúscula) não consigo retornar a string, caso eu tente isso o programa para de funcionar, então botei printf

/*00. Crie uma função que transforma todos os caracteres de uma string em maiúsculos.*/
#include

int strlen(char *str) {
int i, cont = 0;
for(i = 0; str[i] != '\0'; i++){
cont++;
}
return cont;
}

char toup(char letra) {
int num;
if((int)letra >= 65 && (int)letra <= 90 || (int)letra == 32) { //MAISCULAS ESTÃO ENTRE 65 E 90 EM ASCII E ESPAÇO É 32
letra = (int)letra+32; //SOMA 32 PARA TRANSFORMAR EM MINÚSCULA
}

num = (int)letra;
num -= 32; //TRANSFORMAR EM MAIÚSCULA NOVAMENTE
letra = (char)num;

return letra; //RETORNA O CARACTER
}

void strmsc(char *str) {
int i;
for(i = 0; i < strlen(str); i++) {
str[i] = toup(str[i]);
printf("%c", str[i]);
}
}


int main(void) {
char palavra[21];

printf("Digite uma palavra: ");
scanf("%21[^\n]", palavra);
printf("%s", palavra);

printf("\nPALAVRA EM MAIUSCULA: "); strmsc(palavra);
}

Gostou desse tutorial de C?
Sabia que o acervo do portal C Progressivo é o mesmo, ou maior que, de um livro ou curso presencial?
E o melhor: totalmente gratuito.

Mas para nosso projeto se manter é preciso divulgação.
Para isso, basta curtir nossa página no Facebook e/ou clicar no botão +1 do Google.
Contamos e precisamos de seu apoio.