apagar string em C

magikRing

Power Member
boas..eu estou a fazer um trabalho em c que trabalha apenas com memoria virtualmente, nada de ficheiros. quando fecho o prog a memoria vai.se toda.
bom...a minha duvida e a seguinte. eu tenho uma estrutura quem tem um titulo e um conteudo o que eu quero fazer e quando escolho o comando 'del <nome do texto> apagar o conteudo do texto e o titulo tabem, ou seja, eliminar tudo.

a quem puder ajudar muito obrigado


a unica maneira que estou a ver seria atraves do strdelc, mas este so apaga as as letreas que eu disser e nao o texto todo. havera alguma forma de o trasnformar?

char strdelc (char<nome da string>, char<letras que quero apagar>
{
int i,j;
for(i=j=0;<nome da string>!='\0\;i++)
if (<nome da string>!=<letras que quero apagar>)
<nome da string>[j++] = <nome da string>;
<nome da string>='\0'
return<nome da string>
}
 
Última edição:
Se o que pretendes é apenas apagar o "conteúdo" da estrutura, deixando-a presente, o que tens de fazer é uma função que torne uma string vazia e depois aplicas aos campos da estrutura.

Código:
char * init_str(char *s) {
     s[0]='\0';
     return s;
     }
 
mas nao ha maneira de remover mesmo?

ja agora. eu posso apagar os campos da estrutura com ose fossem strings normais?
a minha estrutura e:

typedef struct
{
char conteudo[25][80];
char title[80];
}texto;


fazendo conteudo[0]='\0\ e o mesmo para o title elas vao ser apagadas?
 
Não se pode fazer free a coisas que não foram alocadas dinamicamente.

Onde é que guardas estas estruturas de dados, lista ligada, vector..?
 
boas..eu estou a fazer um trabalho em c que trabalha apenas com memoria virtualmente, nada de ficheiros. quando fecho o prog a memoria vai.se toda.
bom...a minha duvida e a seguinte. eu tenho uma estrutura quem tem um titulo e um conteudo o que eu quero fazer e quando escolho o comando 'del <nome do texto> apagar o conteudo do texto e o titulo tabem, ou seja, eliminar tudo.

a quem puder ajudar muito obrigado


a unica maneira que estou a ver seria atraves do strdelc, mas este so apaga as as letreas que eu disser e nao o texto todo. havera alguma forma de o trasnformar?

char strdelc (char<nome da string>, char<letras que quero apagar>
{
int i,j;
for(i=j=0;<nome da string>!='\0\;i++)
if (<nome da string>!=<letras que quero apagar>)
<nome da string>[j++] = <nome da string>;
<nome da string>='\0'
return<nome da string>
}



Para comparar strings tens de usar o strcmp, depois para a string ficar vazia fazes strcpy(nome_da_string, ' ') qualquer coisa do genero, mas na net existem montes de documentos sobre strings em c...
 
Back
Topo