• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ber0x88

imprimir parte de uma string

14 mensagens neste tópico

Boas pessoal...

Como é que posso fazer para imprimir so uma parte de uma string...

exemplo tenho  string "abcdef" quero imprimir apenas o 2 primeiros caracteres "ab" como faço?!?  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Este é o meu primeiro post, e dado q estou a dar os primeiros passos em C este ano, não estou familiarizado com todas as funcoes existentes no C. De qualquer maneira acho que  esta é uma maneira bem rápida.

char string[] = "abcdef";
int i;
for(i=0; i<2; i++) printf("%c",string[i]);
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não lhe chamaria rápida, mas lá que funciona... Mas é matar uma formiga com um canhão.

na mesma linha mas mais rápido vem o seguinte:

char *s = "abcdef";
char *sp=s;
int i;
for(i=0; i<2; ++i) putchar(sp++);
}

ou

char s[] = "abcdef";
int i=0;
while(i<2) putchar(s[i++]);
}

Depois podes partir e copiar a string, mas isso já é um pouco mais extenso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que significa o "*" atrás do nome da variavel?!?  :-[

O primeiro programa que sugeres dá erro na linha:

char *sp=c;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o "*" significa apontador e uma variavel que vai conter um endereco de memoria.

penso que o que queria ser feito e char *sp=s;

experimenta fazer assim pq nao existe a variavel c.

boas programacoes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes fazer printf("%.2s", "abcdef");

Não sei se é standard.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O primeiro programa que sugeres dá erro na linha:

char *sp=c;

My mistake. Devia ser s em vez de c, como disse o falk0n. Já está corrigido ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

posso ser eu que não percebi a pergunta mas penso a maneira mais simples será mesmo


char string[]="abcde";

printf("%c",string[0]);
printf("%c",string[1]);

se o objectivo e só aceder ao caracter especifico dentro da string assim fica mais fácil loool

Ps: Usar apontadores para isto e mesmo para "derreter" o cérebro, se quiseres dar ai uma boa explicação da utilidade eu não me importo que apontadores e referencias sempre me comerão a tola ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu concordo com TheDark.

Há 1001 soluções para este problema, mas a dele é a mais "suave", ainda q seja a q exija maiores conhecimentos.

Curti milhões foi a alternativa do "%.2s".  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usar apontadores para isto e mesmo para "derreter" o cérebro, se quiseres dar ai uma boa explicação da utilidade eu não me importo que apontadores e referencias sempre me comerão a tola ;)

Dado que também utilizaste apontadores (disfarçados), acho engraçado o teu comentário :D (não estou a gozar, achei mesmo engraçado)

Teres *(string + 1) ou string[1] é exactamente a mesma coisa, o compilador faz a tradução.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Curti milhões foi a alternativa do "%.2s".  :biggrin:

lol , porque? Não funciona é?

Eu realmente não averiguei bem isso, mas testei e funcionou. Mas calculei que talvez não fosse uma cena standard, e ainda nem me dei ao trabalho de pesquisar, não tenho paciência. Em libc funca, e também dá para fazer:

printf("%.*s", 2, abcdef);

0

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