定義:
- CHAR_BACKSLASHは '\\' または 0x5C として定義されます
変数:
- workingDirは C 文字列です
myFilePathは C 文字列です
int len = strlen(workingDir); char lastChar = workingDir[len - 1];
以下では、myFilePathはworkingDir +バックスラッシュ+ リテラル"myfile.txt"から形成されます。
三項引数では、バックスラッシュがまだない場合はバックスラッシュを入れようとしています。
snprintf(myFilePath,
sizeof(myFilePath),
"%s%s%s",
workingDir,
(lastChar == CHAR_BACKSLASH) ? "" : "\\",
"myfile.txt");
可能であれば、このようなものに変更したいと思いますが、空の単一引用符が必要であり、それが許可されているかどうかわからないため、方法がわかりません。
snprintf(myFilePath,
sizeof(myFilePath),
"%s%c%s",
workingDir,
(lastChar == CHAR_BACKSLASH) ? '' : CHAR_BACKSLASH,
"myfile.txt");