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

rickfelix

Problema com String a passar como argumento.

2 mensagens neste tópico

Boas,

Estou com um problema a passar uma string como argumento.

tenho dois ficheiros, um chamado biblio.h e outro teste.c

/* biblio.h */

#include <stdio.h>

extern testestring(char string1[], char *string2){

//para o caso só interessa o string1[]
                int i=1;

        for(i=0; i < strlen(string1); i++){
                printf("na posicao %d esta %s\n", i, &string1[i]) //apenas para mostrar o que está em cada posição do array da string
        }
}

teste.c

#include "biblio.h"

main(){
testestring("xpto", "yada");
}

O problema é que quando no biblio.h quando imprime em vez de me mostrar:

x na posição 0

p na posição 1

t na posição 2

o na posição 3

o print feito mostra:

xpto na posição 0

pto na posição 1

to na posição 2

o na posição 3

Alguém me consegue dizer onde estou a errar no código?  :hmm:

Desde já obrigado! :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

printf("na posicao %d esta %s\n", i, &string1[i]);

%s mostra uma cadeia de caracteres, a partir do apontador que passas como parâmetro, até encontrar o caracter nulo ('\0'). Como estás a passar o endereço do caracter com índice i, ele escreve toda a string a partir dessa posição.

O que tu queres mesmo é mostrar um caracter (%c), e passá-lo por valor (string1[ i ]) em vez do seu endereço (&string1[ i ]).

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