Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

Dar3_D3vil

Problema na obtenção de strings!!!

Mensagens Recomendadas

Dar3_D3vil    0
Dar3_D3vil

Eu tou a fazer o trabalho final de programação e tou com um problema...

A obter strings, se usar

scanf(" %s",comando);

akilo ignorame os espaços e se usar

fgets(comando,DIMAX,stdin);

(o DIMAX ta definido como 100)

reconhece td mas depois n executa umas funçoes enkanto k com o scanf execute mas n le os espaços....

E o gets o meu stor diz k n se deve usar pk tem mtos problemas.

Alguem tem uma alternativa???

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
saramgsilva    2
saramgsilva

scanf(" %s",comando);

nao devias ter scanf("%s",comando);

o espaço que tem antes de %s, nao te traz problemas....comando tem k ser uma string...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Dar3_D3vil    0
Dar3_D3vil

Epah o prob é k o scanf ignora os espaços e o espaço n tem nd a ver com isso... ate testei com e sem espaço pa ter a certeza.

Se alguem souber de uma alternativa ou soluçao... avise

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Dar3_D3vil    0
Dar3_D3vil

N é duvida, lol, é certeza.

Teoricamente devia ler o espaço mas ignora-o,

e fiz scanf de uma string pa um vector de dimensao 100..

testei com menos de 10 caracteres(incluindo espaços).

depois fiz o printf da string, e akilo imprimiu sem espaços mas sim numa nova linha, tipo

se escrever help help aparece:

help

help

mas se escrever help help aparece:

help

help na mm.

:S

Mas o Bruno ja me ajudou a resolver isto fazendo assim:

scanf("%[^\n]s",comando);

so k agr akilo dame outro prob.

no printf o outoput é o k escrevi mas bues vezes ate eu fazer ctlr+c (serve pa parar a execuçao)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jarsantos    0
jarsantos

não acaba o programa enquanto nao carregares em ctrl C? é porque esta em ciclo infinito.

em relação à cena da string eu acho que a melhor forma de apanhar texto é com o getchar, assim tens mais control sobre aquilo que o utilizador escreve, dá é mais trabalho.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
redhat    0
redhat

hehehe ele pára pk (e estupidamente) o caracter que corresponde ao espaço eh igual ao de final de string ou seja '\0' e se bem me lembro (ja nao pego em C faz tempo, ando com outras linguagens agr) pra ultrapassar esse problema tive que passar a string para uma cadeia de chars (que eh efectivamente o que uma string e') e dp verificar um a um se era o '\0' ja n me recordo bem, mas penso que foi assim

boa sorte com o trabalho! =)ß

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
[PT]Devilishly    0
[PT]Devilishly
... passar a string para uma cadeia de chars (que eh efectivamente o que uma string e') e dp verificar um a um se era o '\0' ...
Esse é o algoritmo usado no strlen() para determinar o tamanho da string  :D

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade