69,369
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define N 10
void get_extension(const char *file_name, char *extension);
bool test_extension(const char *file_name, const char *extension);
int main(void)
{
char extension[N] = "TXT";
const char *file_name = "memo.txt";
bool final = test_extension(file_name, extension);
printf("%d\n", final);
return 0;
}
void get_extension(const char *file_name, char *extension)
{
int n = 0;
for(; *file_name != '\0'; file_name++){
if(*file_name == '.'){
n = 1;
break;
}
else
n = 0;
}
if( n == 1){
file_name++;
extension = malloc(strlen(file_name));
if(extension == NULL){
printf("Error,malloc failed\n");
exit (EXIT_FAILURE);
}
strcpy(extension, file_name);
}
else{
extension = malloc(strlen(file_name));
if(extension == NULL){
printf("Error,malloc failed\n");
exit (EXIT_FAILURE);
}
extension = '\0';
}
}
bool test_extension(const char *file_name, const char *extension)
{
char *ex, up[N];
ex = malloc(strlen(file_name));
if(ex == NULL){
printf("Error,malloc failed\n");
exit (EXIT_FAILURE);
}
int t = 0;
get_extension(file_name, ex);
int i;
for(i = 0; ex[i] != '\0'; i++)
up[i] = toupper(ex[i]);
int deci = strcmp(up, extension);
if(deci == 0)
return true;
return false;
}