Um trabalho de programação - AJUDA

Zekinha007

Power Member
Tenho um trabalho de programação para fazer só que eu não pesco ainda muito disto:'(, por isso queria uma ajuda.
O trabalho é o seguinte:
"Escreve um programa que verifique se existe o carácter 'F' numa string (estilo C e não C++) dada pelo utilizador do programa."

Para começar devo ter que fazer:
#include <iostream>
#include <csstring>

using namespace std;

int main()
{
... agora so falta o resto:'(... Alguem me ajuda?
 
agora pedes ao user para introduzir uma palavra, e corres as posições da string à procura do F, usando uma estrutura de condição.

Abraço
 
para - variavel a percorrer toda a string
se posição x == 'f'
retorna verdadeiro
caso contrario
retorna falso

é mais ou menos isso.
 
agora pedes ao user para introduzir uma palavra, e corres as posições da string à procura do F, usando uma estrutura de condição.

Abraço

E como eu passo isso para programa? Aí é que esta o meu problema, looool... Pedir ao user a palavra sei fazer, agora correr as posiçoes da string é que já nao :S
 
for - do, ou do-while também pode ser usado. mas for é mais amigavel:P

E como eu passo isso para programa? Aí é que esta o meu problema, looool... Pedir ao user a palavra sei fazer, agora correr as posiçoes da string é que já nao :S

usas um ciclo de repetição, de por exemplo. i=1;(aqui usas a função que conta o comprimento da variável, desconheço-a em c porque ainda não sei muito sobre c);++i; e dentro do cíclo é que pões a estrutura de condição. vá, já disse muito.
"Quando vires um homem com fome não lhe des o peixe pois só o alimentarás por 1 dia. Ensina-o a pescar e ele nunca mais passará fome";)

Abraço
 
Última edição:
Ou então podes usar o find, do genero

string str2 = str1.find("a_letra_que_queres", 0); // em que 0 é a posição de indice 0.

Mas fazer com for é mais facil e é mais usual.
 
Última edição:
Zekinha007 disse:
#include <iostream>
#include <csstring>

using namespace std;

int main()
{

Só deves ter ido à 1ª aula, não? :002: Tenta fazer por ti que se perceberes isso é logo um passo dado no mundo da programação. Trabalhar com posições é mesmo essencial. O link acima referido tb tem lá td explicado


Cumps
 
bm depois de horas a olhar pa esta m**** penso k isto ta bom i ta completo. fiz assim pelo menos compila e axo k faz o pedido

#include <iostream>
#include <string>
using namespace std;
string a;

int i;
int main()
{

cout << "\nEscreva uma frase: ";
cin >> a;
getline(cin,a);
i = 0;
for(i=0;i<1;i++)
if (i='A')
cout << "\nA frase contem o caracter A:";
else
cout << "\A frase nao comtem o caracter A:";
system("pause");
return(0);
}
 
bm depois de horas a olhar pa esta m**** penso k isto ta bom i ta completo. fiz assim pelo menos compila e axo k faz o pedido

#include <iostream>
#include <string>
using namespace std;
string a;

int i;
int main()
{

cout << "\nEscreva uma frase: ";
cin >> a;
getline(cin,a);
i = 0;
for(i=0;i<1;i++)
if (i='A')
cout << "\nA frase contem o caracter A:";
else
cout << "\A frase nao comtem o caracter A:";
system("pause");
return(0);
}


hum....assim so estás a verificar a primeira posicao da string. experimenta usar o strlen para teres o comprimento da string e assim correres todas as posições.

cin >> a;
getline(cin,a)

Isto faz a mesma coisa ....só precisas de uma delas.

i = 0;
for(i=0;i<1;i++)

não precisas da primeira inicialização do i...o ciclo for trata disso.
 
Bem, tens alguns problemas no teu código:

Código:
cin >> a;
getline(cin,a);

Aqui, ou usas a primeira linha ou usas a função getline.

Código:
for(i=0;i<1;i++)

A condição de paragem do teu ciclo for não faz grande sentido. A ideia é iterares a string inteira, ou seja, algo do género:

Código:
for (i = 0; i < a.size(); i++)


Código:
if (i='A')
cout << "\nA frase contem o caracter A:";
else
cout << "\A frase nao comtem o caracter A:";

A comparação que fazes não está correcta por duas razões. Primeiro, estás a comparar um inteiro que corresponde ao número da iteração com uma letra; a ideia é comparares cada posição da string com a letra (i.e. s == 'A'). Segundo, para comparar deves usar o == e não o =.

Espero que ajude.
 
Back
Topo