Aender 3 Denunciar post Postado Junho 14, 2013 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
reebr 94 Denunciar post Postado Junho 14, 2013 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
Aender 3 Denunciar post Postado Junho 14, 2013 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