【发布时间】:2017-09-06 16:40:27
【问题描述】:
我正在用 C 语言编写一个非常简单的函数来检查字符串是绝对路径还是相对路径。无论我尝试什么,它总是返回 false。
这是我尝试过的:
int isAbsolute(char *str){
if(strcmp(str,"/")){
return 1;
}
return 0;
}
我这样称呼它:
printf("%d\n", isAbsolute("/"));
每次都返回 false。显然我遗漏了一些明显的东西,但我无法弄清楚......
【问题讨论】:
-
strcmp比较整个字符串,因此只有当您传递的字符串是“/”时它才会返回 true。您可以改为查看strncmp,或仅比较一个字符 (if (str[0] == '/')),而不是字符串。 -
@AntonH:为什么不把这个作为答案呢?
-
@alk 我只想评论为什么它不起作用,但在之后编辑了一个解决方案。现在把它作为答案......
-
哇,好的,谢谢。我也试过这个,但我使用的是“/”而不是“/”。谢谢你。不知道为什么当我使用“/”时,它会尝试将 str[0] 作为指针和“/”作为 int 进行比较?