Iri*_*Dog -1 c string text-files
我正在尝试在C中编写一个函数来获取文件的扩展名.所以这是我的代码
char *getFileNameExtension(char *filename){
char *ext = memchr(filename, '.',strlen(filename));
return ext;
}
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是,当我试图检查特定的文件类型,如文本文件(.txt)时,我使用此代码
if (getFileNameExtension(filename)==".txt"){
printf("%s\n",filename);
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我试图将两个字符串打印为整数和字符串
printf("%s %s",".txt",getFileNameExtension(txtFile));
printf("%d %d",".txt",getFileNameExtension(txtFile));
Run Code Online (Sandbox Code Playgroud)
第一个输出是好的,我得到:.txt .txt,但是当我将它们打印为整数(我猜的是ascii代码)时,我得到了这个结果:27918619 4196714.此外,每次执行代码时,第一个字符串的int值都会更改(由于我猜的内存位置不同).有人可以帮忙吗?
小智 5
你无法比较那样的字符串,你正在使用的是指针比较......
这是正确的版本:
if (strcmp(getFileNameExtension(filename), ".txt") == 0)
我建议在C字符串上阅读更多内容.
此外,谷歌的一个亮点:
What if the filename have multiple "extensions"? Use e.g. strrchr to get the last dot. – Joachim Pileborg
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |