Αρχικό μήνυμα από
Fire Doger
Ήθελα από ένα char array γνωρίζοντας τον pointer να αφαιρέσω τα γράμματα μετά την τελεία (file extension).
Αυτο αναφερει.
Υ.Γ Τωρα το ξαναειδα.Ειχα στο μυαλο μου οτι απλα ηταν της μορφης xxxx.txt κτλ.
Κώδικας:
char remove_extension(char* filename,char* extension)
{
char * pch;
pch=strstr(filename,extension);
if((pch != NULL) && (&pch[0] == &filename[strlen(filename)-strlen(extension)]))
{
pch[0]='\0';
printf("%s\n",filename);
return 1;
}
return 0;
}
int main()
{
char filename[] = "Test.azxcvbnm.txt";
remove_extension(filename,".txt");
return(0);
}
Που και εδω υπαρχει η πιθανοτητα να ειναι το ονομα test.document.docκαι ο παραπανω κωδικας να μην το βρισκει σωστα.Το πιο σωστο ειναι να πας απο πισω προς τα μπροστα byte-byte.
Κώδικας:
#include <stdio.h>
#include <string.h>
char remove_extension(char* filename,char* extension)
{
char len_f,len_e;
len_f=strlen(filename);
len_e=strlen(extension);
char index=0;
while(index < len_e)
{
if(filename[len_f-index] != extension[len_e-index])
{
return 0;
}
index++;
}
filename[len_f-len_e]='\0';
printf("%s",filename);
return 1;
}
int main()
{
char filename[] = "Test.document.doc";
remove_extension(filename,".doc");
return(0);
}