0

` の形式のファイル パスを変更するにはどうすればよいですか

c:\abc\efg\mmm.txt

c:\\abc\\mm.txt ?

変更するにはどうすればよいですか

.txt 拡張子、たとえば.doc ?

` 編集:

これらのパスは説明用です。

実際のパスは、ドライブ文字と任意の数のサブディレクトリで構成されます。また、ファイル拡張子は任意の形式にすることができます。

4

1 に答える 1

1

あなたの仕事はあまり明確ではありません。バックスラッシュのみを複製したい場合、およびそれが純粋な 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");

于 2012-02-29T14:54:59.730 に答える