测试扩展名是否一致

qhmilanista qhmilanista 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

#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;
}




为什么测试失败,是0---false
在下就是想file_name指向包含文件名的字符串。如果文件的扩展名与extension指向的字符串匹配(不区分大小写),函数返回true。例如,函数调用test_extension("memo.txt", TXT)将返回true
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
qhmilanista
C语言 70,039 成员 243,237 内容