Possuo um conhecimento superficial de C, só o suficiente para me virar com a lógica de programas desse tipo, depis vou me aprimorando.
Aqui estão os exercicios do Leandrosri, feitos em uma mistura de C e C++. Se alguém puder me ajudar a transformar em 100% C++ eu agradeço.
1.Faça um programa que dado um nome completo, informe a abreviatura deste nome. Não se devem abreviar as preposições como: do, de, etc. A abreviatura deve vir separada por pontos. Ex: Paulo Jose de Alma Prado. Abreviatura: P.J.A.P.
Ps.: Não fiz o primeiro de preguiça mesmo, e pressa para iniciar o tópico aqui...
2.Faça um programa que dado 2 palavras, determine:
a.Se as palavras são iguais;
b.Caso as palavras sejam diferentes, qual delas tem maior comprimento .
#include <iostream>
using namespace std;
char palavra1[15],palavra2[15];
int main()
{
cout << "Informe a primeira palavra: " ;
cin >> palavra1;
cout << "Informe a segunda palavra: " ;
cin >> palavra2;
if (strcmp(palavra1,palavra2)==0) cout << "Palavras são Iguais.\n";
else
{
if (strlen(palavra1)>strlen(palavra2)) cout << "A primeira palavra é mais comprida que a segunda.\n";
else if (strlen(palavra1)<strlen(palavra2)) cout << "A segunda palavra é mais comprida que a primeira.\n";
else cout << "As palavras têm o mesmo comprimento porém não são iguais.\n";
}
return 0;
}
3.Elaborar um programa em C que leia uma frase e armazene-a em um vetor de caracteres
(cuidado com a leitura!). Depois conte o número de espaços em branco na frase, outra para
contar o número de vogais, e outra para contar o número de consoantes.
#include <iostream>
using namespace std;
char vogais[]="aeiou";
char consoantes[]="bcdfghjklmnpqrstvwxyz";
char frase[50];
int contador,x,y;
int main()
{
//receber a frase
cout << "Digite sua frase:";
cin.getline(frase,50);
//contar espaços em branco
contador=0;
for (x=0;x<=strlen(frase);x++)
if (frase[x]==' ') contador++;
cout << "Foram encontrados " << contador << " espaços em branco\n";
//contar vogais
contador=0;
for (x=0;x<=strlen(frase);x++)
for (y=0;y<=strlen(vogais);y++)
if (frase[x]==vogais[y] && frase[x]!=0) contador++;
cout << "Foram encontradas " << contador << " vogais\n";
//contar consoantes
contador=0;
for (x=0;x<=strlen(frase);x++)
for (y=0;y<=strlen(consoantes);y++)
if (frase[x]==consoantes[y] && frase[x]!=0) contador++;
cout << "Foram encontradas " << contador << " consoantes\n";
return 0;
}
4.Faça um programa que transfira as consoantes para um vetor e as vogais para outro.
Depois mostre cada um dos vetores.
#include <iostream>
using namespace std;
char vogais[]="aeiou";
char consoantes[]="bcdfghjklmnpqrstvwxyz";
int contador,x,y;
char frase[50], frase_vogais[30], frase_consoantes[30];
int main()
{
//receber a frase
cout << "Digite sua frase:";
cin.getline(frase,50);
//separar vogais
contador=0;
for (x=0;x<=strlen(frase);x++)
for (y=0;y<=strlen(vogais);y++)
if (frase[x]==vogais[y] && frase[x]!=0) frase_vogais[contador++]=frase[x];
frase_vogais[++contador]=0;
//contar consoantes
contador=0;
for (x=0;x<=strlen(frase);x++)
for (y=0;y<=strlen(consoantes);y++)
if (frase[x]==consoantes[y] && frase[x]!=0) frase_consoantes[contador++]=frase[x];
frase_consoantes[++contador]=0;
//exibir vogais
cout << "Vogais separadas: ";
for(x=0;x<=strlen(frase_vogais);x++) cout << frase_vogais[x];
cout << "\n";
//exibir consoantes
cout << "Consoantes separadas: ";
for(x=0;x<=strlen(frase_consoantes);x++) cout << frase_consoantes[x];
cout << "\n";
return 0;
}
5.Fazer um programa que receba uma string de no máximo 20 caracteres
do usuário e mostre o conteúdo desta string de forma invertida.
#include <iostream>
using namespace std;
char frase[20];
int x;
int main()
{
cout << "Informe a frase: " ;
cin.getline(frase,20);
for(x=strlen(frase);x>=0;x--) cout << frase[x];
cout << "\n";
return 0;
}
6.Faça um programa que receba uma string do usuário (máx. 20 caracteres) e um caracter qualquer.
O programa deve remover todas as ocorrências do caracter da string e mostrar o resultado.
#include <iostream>
using namespace std;
char frase[20],nova[20],caracter;
int x,y;
int main()
{
cout << "Informe a frase: " ;
cin.getline(frase,20);
cout << "Informe o Caracter: ";
cin >> caracter;
for(x=0;x<=strlen(frase);x++)
if(frase[x]!=caracter) nova[y++]=frase[x];
cout << "Frase remontada sem o caracter: " << nova << "\n";
return 0;
}
7.Faça um programa que receba como entradas uma lista de nomes em ordem
aleatória e ordene essa lista em ordem alfabética.
#include <iostream>
using namespace std;
const int total=10;
char nome[total][20],temp[20];
int x,y;
int main()
{
for(x=0;x<=total-1;x++)
{
cout << "Insira o membro numero " << x << ":";
cin.getline(nome[x],20);
}
for(x=0;x<=total;x++)
for(y=x;y<=total;y++)
if(strcmp(nome[x],nome[y])>0)
{
strcpy(temp,nome[x]);
strcpy(nome[x],nome[y]);
strcpy(nome[y],temp);
}
cout << "Lista reorganizada.\n";
for(x=0;x<=total-1;x++) cout << "Membro numero " << x << ": " << nome[x] << "\n";
return 0;
}
8.Faça um programa que leia uma frase de até 60 caracteres(utilizar o comando gets) e
imprima a frase sem os espaços em branco. Imprimir também a quantidade de espaços em branco.
#include <iostream>
using namespace std;
char frase[60], nova[60];
int x,espacos,contador;
int main()
{
cout << "Digite sua frase: ";
cin.getline(frase,60);
contador=0;
espacos=0;
for(x=0;x<=strlen(frase);x++)
if(frase[x]!=' ') nova[contador++]=frase[x];
else espacos++;
nova[contador]=0;
cout << "Frase sem espaços: " << nova << "\n";
cout << "Espaços encontrados: " << espacos << "\n";
return 0;
}
9.Escreva um programa que leia do teclado uma senha alfanumérica, utilize a função strcmp() para
compará-la com uma senha definida internamente no programa e retorne ao usuário a validade ou não
da senha fornecida por ele, em função do resultado da comparação.
#include <iostream>
using namespace std;
char senha[20];
int x,espacos,contador;
int main()
{
cout << "Digite sua senha: ";
cin.getline(senha,20);
if(strcmp(senha,"minhasenha1"==0) cout << "Senha Correta!\n";
else cout << "Senha Invalida!\n";
return 0;
}
10.Escreva um programa que leia uma palavra e verifique se ela é um palíndromo.
Palíndromo é a palavra cuja leitura é a mesma , quer se faça da direita para a esquerda,
quer da esquerda para a direita. Exemplo : Ovo, anilina, "O TEU DRAMA". Inverso: "AMAR DUETO".
#include <iostream>
using namespace std;
char frase[50],nova[50],invertida[50];
int x,y;
int main()
{
cout << "Digite sua frase: ";
cin.getline(frase,50);
//gerar frase sem espaços
y=0;
for(x=0;x<=strlen(frase);x++)
if(frase[x]!=' ') nova[y++]=frase[x];
//inverter frase
y=0;
for(x=strlen(nova);x>=0;x--)
if(nova[x]!=0) invertida[y++]=nova[x];
//comparar
if(strcmp(nova,invertida)==0) cout << "A frase é um palindromo.\n";
else cout << "A frase não é um palindromo.\n";
return 0;
}