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"<IMG SRC="images/forum/icons/icon_wink.gif">;
if (arq != NULL)
{
while(fgets(str,34,arq) != NULL)
printf("%s",); * retorna a linha...
}
system("pause"<IMG SRC="images/forum/icons/icon_wink.gif">;
return 0;
}
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.
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...
Programa em C (linha a linha)
regexp´s sao a soluçao...
mas sempre podes percorrer a string e verificar s o caracter e´ >SPACE< e adicionar o q esta antes pra uma posiçao d um array.
le o string.h
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***"<IMG SRC="images/forum/icons/icon_wink.gif">;
printf("\nDigite sua Frase:"<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]==´ ´)
{
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]);
}
}
}