+ Responder ao Tópico



  1. #1
    cantisan
    Visitante

    Padrão Programa em C (linha a linha)

    fiz um programa para ler um arquivo em C e jogar para uma string, até ai tudo bem, mas o tamanho de cada linha é dinamica e os registros sao separdos por espaco. Como faco para pegar estes valores separados por espaco ?

    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {
    char str[35];
    int tam = 0;
    int tam1 = 0;
    FILE *arq;
    arq = fopen("tmpusr.txt", "r&quot<IMG SRC="images/forum/icons/icon_wink.gif">;
    if (arq != NULL)
    {
    while(fgets(str,34,arq) != NULL)
    printf("%s",); * retorna a linha...
    }
    system("pause&quot<IMG SRC="images/forum/icons/icon_wink.gif">;
    return 0;
    }

  2. #2

    Padrão Programa em C (linha a linha)

    Poutz, bom saca so <IMG SRC="images/forum/icons/icon_smile.gif"> eu nao sou la muito programador,

    mas voce prescisa trabalhar essa string, toda vez que o C encontra uma string que tenha um "espaco" (ou seja \0) ele acredita que acabou aquele vetor ali , e encerra a busca.

    Bom, eu vou comecar a ver manipulacao de strings agora.. (Estrutura de Dados) então eu realmente nao tenho como te ajudar assim.

    Que tal se voce trabalha-se essa string fora do C ? e desse ela jah matisgada para o garoto? C++ ou Kylix podem fazer isso (Kylix programa tanto em C++ cm em Delphi), ou entao voce pode usar algo do tipo.. um interpretador... bash, perl. nao sei sinta-se a vontade, essas sao as minhas ideias.

  3. #3
    cantisan
    Visitante

    Padrão Programa em C (linha a linha)

    eu nao programo em C desde o tempo da faculdade por isto a duvida simples em C++ poderia ser usado sem problemas...

  4. #4
    Mr_Mind
    Visitante

    Padrão Programa em C (linha a linha)

    regexp&acute;s sao a soluçao...
    mas sempre podes percorrer a string e verificar s o caracter e&acute; >SPACE< e adicionar o q esta antes pra uma posiçao d um array.
    le o string.h

  5. #5
    logan32
    Visitante

    Padrão Programa em C (linha a linha)

    bem, para você informar o tamanho da string para o programa basta você comparar tamanho a strlen(). Essa é a função de strlen, ela é o tamanho da string digitada, ela conta todos os caracteres, inclusive os espaços, ela só termina quando chega no ´\0´. Pegue esse exmplo abaixo e compile, com ele você vai entender bem melhor, ele serve para inverter uma frase digitada!! Boa sorte!!

    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    void main()
    {
    char frase[80];
    int cont, tam;
    clrscr();
    printf("***INVERTE SUA FRASE***&quot<IMG SRC="images/forum/icons/icon_wink.gif">;
    printf("\nDigite sua Frase:&quot<IMG SRC="images/forum/icons/icon_wink.gif">;
    gets(frase);
    tam=strlen(frase);
    for(cont=tam-1;cont>=0;cont--)
    {
    if(cont==tam-1)
    {
    if(frase[cont]>97 && frase[cont]<=122)
    frase[cont]=frase[cont]-32;
    printf("%c", frase[cont]);
    }
    else
    if(frase[cont]==&acute; &acute
    {
    printf("%c", frase[cont]);
    if(frase[cont-1]>=97 && frase[cont-1]<=122)
    frase[cont-1]-=32;
    printf("%c", frase[--cont]);
    }
    else
    {
    if(frase[cont]>65 && frase[cont]<=90)
    frase[cont]+=32;
    printf("%c", frase[cont]);
    }
    }
    }