PathRemoveBackslash

文字列の後ろにある「\」を取り除きます。

書式

LPTSTR PathRemoveBackslash(
    LPTSTR lpszPath
);

【インクルードファイル】

shlwapi.h

【必要追加ライブラリ】

shlwapi.lib

戻り値

「\」を取り除いた場合は「\0」に置き換えたアドレスが戻ります。
取り除かなかった場合は引数文字列の最後の文字のアドレスが戻ります。

引数

lpszPath

「\」を取り除きたいパスを含む最大長MAX_PATHのNULL文字で終了する文字列へのポインタ。

解説

引数文字列の最後にある「\」を取り除きます。 文字列の最初にある「\」は取り除けません。

使用例

〈サンプルプログラム〉

#include <stdio.h>
#include <shlwapi.h>

#pragma comment(lib, "shlwapi.lib")

int main()
{
    char buffer[ ] = "c:\\a\\b\\File\\"; 
    char *lpStr1 = NULL;
    size_t size = strnlen(buffer, MAX_PATH);
    char *lpStr2 = &buffer[size-1];

    printf("引数に設定した文字列      : %s\n", buffer);
    lpStr1 = PathRemoveBackslash(buffer);
    printf("変換後の文字列            : %s\n", buffer);
    printf("引数の最後の文字のポインタ: %08x\n", lpStr2);
    printf("戻り値                    : %08x\n\n", lpStr1);

    size = strnlen(buffer, MAX_PATH);
    lpStr2 = &buffer[size-1];
    printf("引数に設定した文字列      : %s\n", buffer);
    lpStr1 = PathRemoveBackslash(buffer);
    printf("変換後の文字列            : %s\n", buffer);
    printf("引数の最後の文字のポインタ: %08x\n", lpStr2);
    printf("戻り値                    : %08x\n\n", lpStr1);

    char buffer2[ ] = "\\a\\b\\File\\"; 
    size = strnlen(buffer2, MAX_PATH);
    lpStr2 = &buffer2[size-1];
    printf("引数に設定した文字列      : %s\n", buffer2);
    lpStr1 = PathRemoveBackslash(buffer2);
    printf("変換後の文字列            : %s\n", buffer2);
    printf("引数の最後の文字のポインタ: %08x\n", lpStr2);
    printf("戻り値                    : %08x\n\n", lpStr1);

    return 0;
}

〈出力〉

引数に設定した文字列      : c:\a\b\File\
変換後の文字列            : c:\a\b\File
引数の最後の文字のポインタ: 0012ff4f
戻り値                    : 0012ff4f

引数に設定した文字列      : c:\a\b\File
変換後の文字列            : c:\a\b\File
引数の最後の文字のポインタ: 0012ff4e
戻り値                    : 0012ff4e

引数に設定した文字列      : \a\b\File\
変換後の文字列            : \a\b\File
引数の最後の文字のポインタ: 0012ff65
戻り値                    : 0012ff65

対応情報

  DLL Version:shlwapi.dll version 4.71 以上。
  Windows NT/2000:Windows NT 4.0/2000 Internet Explorer 4.0以降
  Windows 95/98:Windows 95/98 Internet Explorer 4.0以降