7 NSStringにパーセント記号を追加する方法 文字列の数字の後にパーセント記号を入れたい。このようなもの:75%。 どうすればこれを行うことができますか?私は試した: [NSString stringWithFormat:@"%d\%", someDigit]; しかし、それは私にはうまくいきませんでした。 456 objective-c nsstring string-literals
10 C ++複数行文字列リテラル PerlのようなC ++で複数行のプレーンテキストの定数リテラルを作成する方法はありますか?たぶん#include、ファイルを解析する際の解析トリックですか?私はそれを考えることができませんが、男の子、それはいいでしょう。C ++ 0xになることは知っています。 415 c++ string-literals
12 CまたはC ++での単一引用符と二重引用符 CまたはC ++プログラミングで単一引用符と二重引用符を使用する必要があるのはいつですか? 208 c++ c syntax char string-literals
15 python:SyntaxError:文字列リテラルのスキャン中にEOL 上記のエラーがあります s1="some very long string............" 誰かが私が間違っていることを知っていますか? 164 python string string-literals
8 文字列リテラル:どこに行くのですか? 文字列リテラルが割り当てられる/格納される場所に興味があります。 ここで興味深い答えが1つ見つかりました。 インラインで文字列を定義すると、実際にはプログラム自体にデータが埋め込まれ、変更できません(一部のコンパイラではこれをスマートトリックで許可しているので、気にしないでください)。 しかし、それはC ++に関係していることは言うまでもありません。 気になります。= D だから私の質問は私の文字列リテラルがどこにどのように保持されるのですか?それを変更しようとしないのはなぜですか?実装はプラットフォームによって異なりますか?「スマートトリック」について詳しく説明する人はいますか? 161 c memory string-literals
5 PythonでのWindowsパス たとえば、Windowsディレクトリを表す最良の方法は何"C:\meshes\as"ですか?スクリプトを変更しようとしていましたが、ディレクトリを正しく取得できないように見えるため、'\'機能しません。エスケープ文字として機能しているためと思いますか? 152 python path string-literals
6 コンパイル時のC文字列の長さの計算。これは本当にconstexprですか? コンパイル時に文字列リテラルの長さを計算しようとしています。これを行うには、次のコードを使用しています。 #include <cstdio> int constexpr length(const char* str) { return *str ? 1 + length(str + 1) : 0; } int main() { printf("%d %d", length("abcd"), length("abcdefgh")); } すべてが期待どおりに機能し、プログラムは4と8を出力します。clangによって生成されたアセンブリコードは、結果がコンパイル時に計算されることを示しています。 0x100000f5e: leaq 0x35(%rip), %rdi ; "%d %d" 0x100000f65: movl $0x4, %esi 0x100000f6a: movl $0x8, %edx 0x100000f6f: xorl %eax, %eax 0x100000f71: callq … 94 c++ c++11 standards constexpr string-literals
4 一部のコンパイラーが同一の文字列リテラルに同じアドレスを使用するのはなぜですか? https://godbolt.org/z/cyBiWY 'some'MSVCによって生成されたアセンブラコードで2つのリテラルを確認できますが、clangとgccを使用するリテラルは1つだけです。これにより、コード実行の結果がまったく異なります。 static const char *A = "some"; static const char *B = "some"; void f() { if (A == B) { throw "Hello, string merging!"; } } 誰かがそれらのコンパイル出力の違いと類似点を説明できますか?最適化が要求されていないのに、clang / gccが何かを最適化するのはなぜですか?これはある種の未定義の動作ですか? また、宣言を以下に示すように変更すると、clang / gcc / msvcはアセンブラー"some"コードに何も残さないことに気づきました。なぜ動作が異なるのですか? static const char A[] = "some"; static const char B[] = "some"; 92 c++ language-lawyer string-literals string-interning
4 マクロ引数を文字列リテラルとして使用するにはどうすればよいですか? 変数名の文字列リテラル表現と変数自体の両方を関数に渡すマクロを作成する方法を理解しようとしています。 たとえば、次の関数が与えられます。 void do_something(string name, int val) { cout << name << ": " << val << endl; } これを実行できるように、マクロを作成したいと思います。 int my_val = 5; CALL_DO_SOMETHING(my_val); どちらが印刷されますか: my_val: 5 私は次のことを試みました: #define CALL_DO_SOMETHING(VAR) do_something("VAR", VAR); ただし、ご想像のとおり、引用符内のVARは置き換えられず、文字列リテラル「VAR」として渡されるだけです。したがって、マクロ引数を文字列リテラル自体に変換する方法があるかどうかを知りたいと思います。 90 c++ c-preprocessor string-literals
1 C ++ 11での文字列リテラルのUnicodeエンコーディング 関連する質問に続いて、C ++ 11の新しい文字と文字列リテラルタイプについて質問したいと思います。現在、4種類の文字と5種類の文字列リテラルがあるようです。文字タイプ: char a = '\x30'; // character, no semantics wchar_t b = L'\xFFEF'; // wide character, no semantics char16_t c = u'\u00F6'; // 16-bit, assumed UTF16? char32_t d = U'\U0010FFFF'; // 32-bit, assumed UCS-4 そして文字列リテラル: char A[] = "Hello\x0A"; // byte string, "narrow encoding" wchar_t B[] = L"Hell\xF6\x0A"; … 84 c++ unicode c++11 utf string-literals
9 Cでの文字列リテラルの「ライフタイム」 次の関数によって返されるポインタにアクセスできませんか? char *foo(int rc) { switch (rc) { case 1: return("one"); case 2: return("two"); default: return("whatever"); } } つまり、C / C ++のローカル変数の存続期間は、実際には関数内だけですよね?つまり、char* foo(int)終了した後、それが返すポインタはもはや何も意味しませんよね? ローカル変数の存続期間について少し混乱しています。良い説明は何ですか? 84 c function local-variables string-literals lifetime
4 const char *がメモリアドレスへのポインタを必要としないのはなぜですか? これは簡単な質問かもしれませんが、なぜconst char *が指すメモリアドレスを必要としないのですか? 例: const char* a = "Anthony"; ではなく: const char *a = // Address to const char 他のタイプと同じように? 18 c++ c implicit-conversion c-strings string-literals
1 なぜb [2]は偽ですか? string s; bool b[] = {s=="", s==s.c_str(), s.c_str()==""}; セット b[] = {true, true, false}; なぜb[2]間違っているのですか? との場合A==B、A==Cそれは意味しませんB==Cか? 11 c++ string stdstring string-literals equality-operator
4 文字配列を文字列として使用するにはどうすればよいですか? Cの文字列は単なる文字配列であることを理解しています。そこで、次のコードを試しましたが、ガベージ出力やプログラムのクラッシュなど、奇妙な結果が得られました。 #include <stdio.h> int main (void) { char str [5] = "hello"; puts(str); } なぜこれが機能しないのですか? できれいにコンパイルされますgcc -std=c17 -pedantic-errors -Wall -Wextra。 注:この投稿は、文字列を宣言するときにNULターミネーター用のスペースを割り当てられなかったことから生じる問題の標準的なFAQとして使用することを目的としています。 10 c string c-strings string-literals nul