1

我正在编写一个简单的 C 程序

char *path;

我想检查路径"/"最后是否有尾随,我尝试strcmp了函数,但它给了我分段错误。

if (strcmp(path[strlen(path)-1], "/") == 0)

如何检查字符串是否"/"在末尾

谢谢。

4

2 回答 2

6

因为 c 中的字符串是一个字符数组,所以您只需要检查 \0 之前的最后一个字符

而不是 strcmp 使用这样的东西

const int len = strlen(path);
if ( len > 0 && path[len-1] == '/' )
{ 

}
于 2013-11-03T09:32:53.397 回答
1

通过使用path[strlen(path-1)],您将单个字符传递给strcmp,这是不允许的,因为strcmp需要一个以空字符结尾的字符序列。

相反,直接比较它:

if (path[strlen(path)-1] == '/') { ... }
于 2013-11-03T09:33:25.493 回答