Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ajuda com string


wellyson gomes de as

Pergunta

SE CONSEGUIR RESOLVER QUALQUER PARTE EU AGRADEÇO MUITO
O meu programa é ler uma sequência de 'A's e 'B's e mostrar se é aceito ou não.
as regras são:
1) a sequência ser de tamanho múltiplo de 3; (Já fiz essa parte)
2) a cada três caracteres pelo menos um tem que ser A ou seja ele só aceita AAA,ABA,ABB,BAB,BBA; (estou com dúvidas nessa parte tentei eliminar verificando se a string contém BBB mais se colocar: ABBBBA ou ABBBAA fica como inválido)
3) se a sequência tiver qualquer caractere diferente de A e B , mostrar caractere inválido.(ainda não fiz).
#include <iostream>
#include <string>
#include <stdio.h>
#include <cstdlib>
using namespace std;
int main()
{
string palavra;int tamanho=0;
string cvr_palavra="",caractere=" ";
int posicao=0;
cout<<"Digite uma palavra: ";
getline(cin, palavra);
if(palavra.size()%3==0 )
{
cout<<"\nEssa palavra e multiplo de 3|"<<"\n\nO comprimento da palavra e:"<<palavra.size () ;
{
string frase = palavra;
size_t pos = frase.find("BBB");
if(pos == string::npos)
//cout << "A substring não foi encontrada.\n\n";
cout<<"\n\nEssa palavra e valida";
else
//cout << "A substring foi encontrada" <<" na posicao " << pos << ".\n\n";
cout<<"\n\nEssa palavra não e valida";
}
}
else
{
cout<<"\nEssa palavra não e multiplo de 3|"<<"\nO comprimento da palavra e: "<<palavra.size();
if (palavra[0]!='A'&& 'B')
cout<<"\npalavra invalida ";
else
cout<<"\npalvra valida "<<tamanho;
}
system("PAUSE > null");
return 0;
}
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Opa, beleza?

Hoje que vi sua msg.... muita correria...

Veja se te serve:

#include <iostream>
#include <string>
#include <stdio.h>
#include <cstdlib>
using namespace std;

int main()
{
    string palavra;
    int tamanho=0;
    string  cvr_palavra="",caractere=" ";
    cout<<"Digite uma palavra: ";
    getline(cin, palavra);

    if(palavra.size()%3==0 )

    {

        cout<<"\nEssa palavra e multiplo de 3|"<<"\n\nO comprimento da palavra e:"<<palavra.size () ;

        //string frase = palavra;
        //size_t pos = frase.find("BBB");

        bool hasA = false;
        for (size_t i = 0; i < palavra.size(); i++)
        {
            if (palavra.at(i) != 'A' && palavra.at(i) != 'B')
            {
                cout << "\nCaractere invalido";
                return 1;
            }

            hasA = hasA == true || palavra.at(i) == 'A';
            if ((i + 1) % 3 == 0)
            {
                if (!hasA)
                {
                    cout << "\n\nEssa palavra não e valida";
                    return 1;
                }
                else
                    hasA = false;
            }
        }
        cout << "\n\nEssa palavra e valida";

    }
    else
    {
        cout<<"\nEssa palavra não e multiplo de 3|"<<"\nO comprimento da palavra e: "<<palavra.size();
        if (palavra[0]!='A'&& 'B')

            cout<<"\npalavra invalida ";
        else
            cout<<"\npalvra valida "<<tamanho;
    }


    system("PAUSE > null");
    return 0;
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...