` の形式のファイル パスを変更するにはどうすればよいですか
c:\abc\efg\mmm.txt
に
c:\\abc\\mm.txt ?
変更するにはどうすればよいですか
.txt 拡張子、たとえば.doc ?
` 編集:
これらのパスは説明用です。
実際のパスは、ドライブ文字と任意の数のサブディレクトリで構成されます。また、ファイル拡張子は任意の形式にすることができます。
` の形式のファイル パスを変更するにはどうすればよいですか
c:\abc\efg\mmm.txt
に
c:\\abc\\mm.txt ?
変更するにはどうすればよいですか
.txt 拡張子、たとえば.doc ?
` 編集:
これらのパスは説明用です。
実際のパスは、ドライブ文字と任意の数のサブディレクトリで構成されます。また、ファイル拡張子は任意の形式にすることができます。
あなたの仕事はあまり明確ではありません。バックスラッシュのみを複製したい場合、およびそれが純粋な C であり、ワイド文字 (つまり ASCII のみ) がない場合は、次の行に沿って何かを行うことができます。
char* p = str;
char target[MAX_PATH + 1]; // or some other way to be sure it will hold the transformed string
char* t = target;
while (*p) {
char ch = *p++;
if (ch == '\\')
*t++ = '\\';
*t++ = ch;
}
*t = '\0';
これにより、バックスラッシュが複製されます。拡張子を置き換えるために、物事を単純にするために、 を使用して拡張子を検出することがint len = strlen(str);
できます ( の最後の文字をチェックするのと同じくらい簡単かもしれませんstr
)。完了したら、while
条件をwhile(p - str < len - 3)
次のように置き換えることができますstrcat(target, "doc");