String em C

1. String em C

Ricardo
ricardo13

(usa Fedora)

Enviado em 20/11/2008 - 21:34h

olá pessoal,

eu conheço JAVA e to começando a mexer com C.
Estou com dúvida relacionada a Strings.

como eu faço um monte de atribuição em uma variável String.

Ex:

int main() {
char* str;

for(int i=0; i<10; ++i)
strcpy(str, "a");
return 0;
}

Quando eu compilo....e coloca para rodar dá "segmentation fault".

Oq eu estou fazendo de errado ???

Muito Obrigado

Ricardo


  


2. Re: String em C

Rogério Cassimiro
cassimirinho

(usa Ubuntu)

Enviado em 20/11/2008 - 21:41h

Não teria que usar um str[i] ?

Não me recordo bem de C, mas acho que era algo do tipo.


3. Re: String em C

Ricardo
ricardo13

(usa Fedora)

Enviado em 20/11/2008 - 21:51h

olá,

eu vi q com vetor (array) dá certo.

Mas é q depois eu precisava que no final do FOR .... eu queria printar a variavel str.

Agora com array eu vou ter q printar fazendo um FOR em cada posição do array...e naum era isso q eu queria.

Muito Obrigado

Ricardo



4. Re: String em C

yurick gomes
yurick

(usa Debian)

Enviado em 20/11/2008 - 23:42h

rapah teu código é só isso mesmo? tu deu o malloc antes da atribuição??
a função strcpy copia a string toda, pelo que entendi num serve pra o que tu
tá querendo, do jeito que vc colocou vc criaria uma matriz de strings (se tivessse
dado o malloc antes talvez até rodasse!

vc tem que alloca espaço e depois atribuir caractere a caractere, por exemplo

char *str = (char*)malloc(N*sizeof(char));

for (i = 0; i < N; i++)
*(str+i) = 'a';


5. String em C

Vinicius Senna
vsenna

(usa Slackware)

Enviado em 22/11/2008 - 01:32h

Eu fiz o seguinte: você entra com o numero de atribuições que você quer, será alocado o tamanho na variavel
*str, e dentro do laço for será copiado o caractere "a" e a variavel str sera impressa




int main(){
char *str;
int i, num;
printf("Entre com o numero de atribuições:");
scanf("%d",&num);

str=(char*)malloc(num*sizeof(char));

for(i=0; i<num;i++){
strcpy(str, "a");
printf("%s",str);
}
printf("\n");
free(str);
return 0;
}


6. Re: String em C

Marcelo
m.tchelo

(usa Debian)

Enviado em 22/11/2008 - 08:35h

só complementando ... não esquece de liberar a memória depois !

free(str);

[]'s
mb


7. Re: String em C

Vinicius Senna
vsenna

(usa Slackware)

Enviado em 22/11/2008 - 16:17h

verdade!
já corrigi :)


8. Obrigaduuuuu !!!

Ricardo
ricardo13

(usa Fedora)

Enviado em 22/11/2008 - 16:39h

ola galera,

vi q essa comunidade é pronta pra qq coisa ...... ainda mais o pessoal do C que manja muito.

Muito Obrigado ...... tava faltando alocar memória né

e to liberando tb ...... kkkkkkk

Muito Obrigado a vcs mais uma vez e espero contar com a ajuda de vcs

Ricardo






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts