如何在C程序中检查字符串的结尾是否有/character
我正在写一个简单的C程序如何在C程序中检查字符串的结尾是否有/character,c,string,path,comparison,strcmp,C,String,Path,Comparison,Strcmp,我正在写一个简单的C程序 char *path; 我想检查路径是否有尾随“/”在最后,我尝试了strcmp函数,但它给了我分段错误 if (strcmp(path[strlen(path)-1], "/") == 0) 如何检查字符串末尾是否有“/” 谢谢 由于c中的字符串是字符数组,因此只需检查\0之前的最后一个字符即可 不要使用strcmp,而是使用类似的东西 const int len = strlen(path); if ( len > 0 && path[le
char *path;
我想检查路径是否有尾随“/”
在最后,我尝试了strcmp
函数,但它给了我分段错误
if (strcmp(path[strlen(path)-1], "/") == 0)
如何检查字符串末尾是否有“/”
谢谢 由于c中的字符串是字符数组,因此只需检查\0之前的最后一个字符即可 不要使用strcmp,而是使用类似的东西
const int len = strlen(path);
if ( len > 0 && path[len-1] == '/' )
{
}
由于c中的字符串是字符数组,因此只需检查\0之前的最后一个字符 不要使用strcmp,而是使用类似的东西
const int len = strlen(path);
if ( len > 0 && path[len-1] == '/' )
{
}
通过使用path[strlen(path-1)]
,您正在将单个字符传递给strcmp
,这是不允许的,因为strcmp
需要以空结尾的字符序列
相反,直接进行比较:
if (path[strlen(path)-1] == '/') { ... }
通过使用path[strlen(path-1)]
,您正在将单个字符传递给strcmp
,这是不允许的,因为strcmp
需要以空结尾的字符序列
相反,直接进行比较:
if (path[strlen(path)-1] == '/') { ... }
你可以去掉
int len=strlen(路径)
直接在if条件中使用strlen这是正确的,但通常情况下,可能需要在if语句中再次使用该值,例如删除“/”,我发现使用变量更清楚。优化器无论如何都会删除任何不必要的代码。这会在空字符串上呕吐。@rubenvb好吧,我更新了这个问题以满足您对细节的关注。太好了+1从我这里:)
你可以去掉int len=strlen(路径)
直接在if条件中使用strlen这是正确的,但通常情况下,可能需要在if语句中再次使用该值,例如删除“/”,我发现使用变量更清楚。优化器无论如何都会删除任何不必要的代码。这会在空字符串上呕吐。@rubenvb好吧,我更新了这个问题以满足您对细节的关注。太好了+1来自我:)