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)]すると、単一の char が に渡されますがstrcmp、これは許可されていませんstrcmp

代わりに、直接比較してください。

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