Ir ao conteúdo
  • Cadastre-se

André Luiz Feijó

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

posts postados por André Luiz Feijó

  1. Obrigado!

     

    adicionado 25 minutos depois

    @devair1010 Pensei um pouco e consegui fazer dessa forma a função (Funcionou):

    void countStr(char Str[])
    {
        int n = 0;
        for(int i = 0; i < strlen(Str); i++)
        {
            if(isspace(Str[i]))
            {
                if(i == 0)
                {
                }
                if(isspace(Str[i-1]))
                {
                }
                else
                {
                    n++;
                }
            }
        }
        cout << n+1 << endl;
    }

     

    • Curtir 2
  2. Questão: Fazer uma rotina que recebe um string como parâmetro e imprime quantas palavras (separadas por espaços em branco) o mesmo contém.

    Fiz o seguinte: 

    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    #include <locale.h>
    using namespace std;
    
    void countStr(char Str[]);
    
    int main(int nNumberofArgs, char* pszArgs[])
    {
        setlocale(LC_ALL, "Portuguese");
    
        char Str[257];
    
        cout << "Digite uma String: ";
        cin.getline(Str, 257);
    
        countStr(Str);
    
        system("PAUSE");
        return 0;
    }
    
    void countStr(char Str[])
    {
        int n = 0;
    
        if(isdigit(Str[0]))
        {
            n++;
        }
    
        for(int i = 1; Str[i] != '\0'; i++)
        {
            if(isspace(Str[i]))
            {
                if(isdigit(Str[i + 1]))
                {
                    n++;
                }
            }
        }
        cout << n << endl;
    }

    Acontece que sempre dá um erro, alguém pode me ajudar a corrigir?!

    • Curtir 1
  3. 2 horas atrás, Mauro Britivaldo disse:
    
    void pontInfo (char Str[], int nCount) {
    
        cout << "Pontuação: ";
    
        char cAux[nCount];
        char nArrayPont[] = {'?', '.', '!', ':', ',', ';', '-'};
        int nSize = strlen (nArrayPont); // #Aqui tem um erro.
    
    
    
      ...

    A função strlen () exige, em seu parâmetro, uma argumento string.

    A única coisa que distingue um vetor de caracteres (char) de uma string (char) é o ultimo elemento, porque uma vetor string tem o caractere '\0' no fim da lista. Todas as funções que manipulam strings [strlen...strcmp] só terminam suas tarefas quando esse caractere for encontrado. Daí a array nArrayPont só precisa dele no fim da lista para strlen retorna a largura certa.

     

    Assim:

    
    void pontInfo (char Str[], int nCount) {
    
        cout << "Pontuação: ";
    
        char cAux[nCount];
        char nArrayPont[] = {'?', '.', '!', ':', ',', ';', '-', '\0'};
        int nSize = strlen (nArrayPont); // Correto retorno para nSize.
    
    
    
      ...

    :thumbsup: Resolve aí

    Obrigado!

    Acontece que erros ainda estão sendo retornados...

    Ex.: Se eu boto "-", ele me retorna "?, o, G"

    • Curtir 1
  4. Acontece que, sou novo em C++ e baixei um PDF com exercícios pra treinar... o Exercícios diz "Faça um programa que lê uma String e diz quantas letras minusculas ela tem, quantos números e quantos caracteres de pontuação"

    -Fiz a seguinte função:

    void pontInfo(char Str[], int nCount)
    {
        cout << "Pontuação: ";
    
        char cAux[nCount];
        char nArrayPont[] = {'?', '.', '!', ':', ',', ';', '-'};
        int nSize = strlen(nArrayPont);
    
        for(int n = 0; n < nCount; n++)
        {
            for(int j = 0; j < nSize; j++)
            {
                if(Str[n] == nArrayPont[j])
                {
                    cAux[n] = nArrayPont[j];
                }
            }
        }
    
        int nAuxLen = strlen(cAux);
        char nPont[nAuxLen];
    
        if(nAuxLen == 0)
        {
            cout << "Nenhuma" << endl;
        }
    
        for(int i = 0; i < nAuxLen; i++)
        {
            nPont[i] = cAux[i];
        }
    
        for(int i = 0; i < nAuxLen; i++)
        {
            if(i < nAuxLen - 1)
            {
                cout << nPont[i] << ", ";
            }
            else
            {
                cout << nPont[i] << endl;
            }
        }
    }

    Sempre acontece dá erro.. Alguém pode me explicar onde eu erro?

  5. Sou iniciante em C++ e ando fazendo alguns exercícios. Estou em um exercício onde o programa pede ao usuário 10 números e depois apresenta o maior e o menor.

    Fiz o código da seguinte forma: 

     

    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    #include <locale.h>
    
    using namespace std;
    
    
    
    int main(int nNumberofArgs, char* pszArgs[])
    {
        setlocale(LC_ALL, "portuguese");
    
    
    
        int i, final, nMax = 10;
        double nAux, nNumeros[10];
    
    
    
        printf("Determine 10 números\n");
    
    
    
        for(i = 0; i < nMax; i++)
        {
            cout << i + 1 << ": ";
            cin >> nNumeros;
        }
    
    
    
        do{
            final = 0;
            for(i = 0; i < nMax; i++)
            {
                if(nNumeros > nNumeros[i+1])
                {
                    nAux = nNumeros;
                    nNumeros = nNumeros[i+1];
                    nNumeros[i+1] = nAux;
                    final = 1;
                }
            }
        }while(final);
    
    
    
        cout << "Maior número: " << nNumeros[9] << endl;
        cout << "Menor número: " << nNumeros[0] << endl;
    
        system("PAUSE");
        return 0;
    }

     

    De fato, o menor valor funciona, porém o maior sempre imprime lixo. Já li e reli milhares de vezes o código, mudei várias coisas... Nada Funciona... 

    Alguma dica??

     

    • Curtir 1

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!