Ir ao conteúdo

problema strings


Rod08

Posts recomendados

Postado

Help

:confused:

preciso de ajuda com esse algoritimo de strings;;;

obrigado.

escrever um programa em C que leia um string do teclado e conte as letras, números e caracteres especiais existentes nesse string. mostrando essas quantidades separadamente ao final do programa.

main()

{

char string;

printf("Digite uma strind do teclado :");

scanf("%c", &string);

printf("A string tem %c carateres\n\n",string);

system("pause");

}

Postado

Uma string em C, é uma matriz de caracteres de uma única dimensão, finalizada com o terminador NULL ('\0').

Aqui, você criou somente uma variável do tipo byte, com um único caractere:

char string;

Se uma string é um vetor, então, você precisa declarar um vetor:

char string[64];

Sabendo que a string termina com o caractere NULL (0x00), basta percorrer a string desde o elemento ZERO, até encontrar o caractere NULL (0x00).

É só fazer um laço WHILE e ir somando os caracteres até encontrar o caractere 0x00, mas isso, eu deixo pra você fazer, ehehehehehe

Existe uma função pronta que já retorna o tamanho da string. Mas, se o objetivo é didático, então, tú vai ter que fazer no braço!

E aqui, você tá capturando somente um único byte, ou caractere:

scanf("%c", &string);

Pra capturar uma string, você usa isso:

scanf("%s", &string);

Ou então, usa a função GETS.

[]'s

Postado

preciso ler a string, e em cima da string digitada, contar o numero de letras, caracteres especiais e :confused: numeros, ler o numero de letras até aí é barbada com o comando strlen, mas o resto é complicado, agradeço.

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

main ( )

{

char nome[40];

printf ("Digite seu nome:");

gets ( &nome[ 0 ] );

}

if ((nome == 'a' && nome == 'z' || nome == 'A' && nome == 'Z')) {

printf ("quantidade = %d letras ", strlen(&nome[ 0 ]) );

}

else

else if (nome=='0' && nome=='9') {

printf("quantidade de numero");

}

system("pause");

}

Postado

Salve, Rod08.

Pela Tabela ASCII: ( http://pt.wikipedia.org/wiki/ASCII ), você pode perceber as faixas onde estão determinados tipos de caracteres.

Sabendo as faixas, você pode fazer filtros para separar essas faixas.

P. ex.: se eu quiser separar todas as letras (maiúsculas/minúsculas) de uma string, eu poderia fazer assim:

if ( ( nome [ indice ] >= 'A' && nome [ indice ] <= 'Z' ) || ( nome [ indice ] >= 'a' && nome [ indice ] <= 'z' ) )
letras++;

Sacou?

Uma string em C, é um vetor de chars. Sendo um vetor de chars, cada "caractere" dessa string, precisa ser referenciado pelo seu índice.

Se você não especifica o índice, como você está fazendo aqui:

if ((nome == 'a' && nome == 'z' || nome == 'A' && nome == 'Z'))

o seu programa vai comparar sempre, com o primeiro elemento da string. E não com o restante da string.

você precisa estudar VETORES.

Queima uns neurônios aí, e depois, posta os seus progressos e suas dúvidas.

Boa sorte.

[]'s

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!