Ir para conteúdo

Arquivado

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

Aender

Ler arquivo txt e armazenar as Strings em um vetor (Linguagem C)

Recommended Posts

Boa dia pessoal ! Necessito fazer um programa em C que leia um arquivo txt contendo um texto e separe as strings do mesmo, de acordo com os critérios : O programa deve considerar os acentos, fazer distinção entre maiúsculas e minúsculas e deve ignorar apenas os sinais de pontuação .Exemplo de texto : "C é uma linguagem de programação compilada de propósito geral, estruturada, imperativa " o programa deve separar as strings e armazenar em um vetor assim : [C] [é] [uma] [linguagem] [de] [programação] [compilada] [de] [propósito] [geral] .A parte de abertura e leitura de arquivo está tranquilo, mas não sei como fazer o código para separar as strings, de acordo com os critérios que mencionei acima, a parte de armazenar no vetor também está relativamente tranquilo. Desde já agradeço pela ajuda .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pontuação, use a função ispuntc()

#include <ctype.h>
#include <stdio.h>

int main ()
{
	char str[] = "Varios, sinais, de, pontuação!!! só vou exibi-los...";
	int i = 0;
	
	while (str[i])
	{
		/* se for pontuação... */
		if (ispunct (str[i]))
			printf("%c", str[i]);
		i++;	
	}
};

 

Para exibir o que foi lido, sem precisar substituir cada char pelo seu número correspondente na tabela ascii crie uma função simples:

#include <locale.h>
#include <stdio.h>

/* dê o nome que quiser p/ a função... ftext, mytext, text... */
void exibesemfrescuras (int c)
{
	setlocale (LC_ALL,"PORTUGUESE"); printf("%c", c); setlocale (LC_ALL, "C");
};

int main ()
{
	char str[] = "à á è é ì í ò ó ù ú õ ã ê ô ... ";
	int i = 0;
	
	while (str[i])
	{
		exibesemfrescuras (str[i]);
		i++;	
	}
};

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Pontuação, use a função ispuntc()

#include <ctype.h>
#include <stdio.h>

int main ()
{
	char str[] = "Varios, sinais, de, pontuação!!! só vou exibi-los...";
	int i = 0;
	
	while (str[i])
	{
		/* se for pontuação... */
		if (ispunct (str[i]))
			printf("%c", str[i]);
		i++;	
	}
};

 

Para exibir o que foi lido, sem precisar substituir cada char pelo seu número correspondente na tabela ascii crie uma função simples:

#include <locale.h>
#include <stdio.h>

/* dê o nome que quiser p/ a função... ftext, mytext, text... */
void exibesemfrescuras (int c)
{
	setlocale (LC_ALL,"PORTUGUESE"); printf("%c", c); setlocale (LC_ALL, "C");
};

int main ()
{
	char str[] = "à á è é ì í ò ó ù ú õ ã ê ô ... ";
	int i = 0;
	
	while (str[i])
	{
		exibesemfrescuras (str[i]);
		i++;	
	}
};

Obrigado pela ajuda Neelix , vou tentar adaptar o código para ler do arquivo. Show de bola Brother, valeu mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.