問題タブ [string-literals]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - strcat を使用した文字配列の追加が機能しない
このコードの何が問題なのか教えてもらえますか???
wpf - StringFormatは無視されます
これは私のバインディングです(短縮、Command-Propertyもバインドされています)
ContectMenuのPlacementTargetのTag-Propertyは、次のような文字列です。
コマンドハンドラーで受け取ることを期待しているのは次のとおりです。
しかし、私が実際に受け取るのは次のとおりです。
c++ - 文字列リテラルのchar*への割り当て
次のコードはC++0xで合法、非推奨、または違法ですか?
私はもともとここでコメントとしてこの質問をしました。
c# - Webサービスで円記号が正しく機能しない
Webサービスに簡単なコード行があります。
それでも、出力は常に同じです。
@を削除し、2つのスラッシュを使用すると、同じ結果が得られます。私はこれを前に見たことがなく、私のグーグルフーは私に失敗しました。簡単なアプリも書いたのですが、結果は正しかったです。では、なぜそれがWebサービスで機能しているのでしょうか。
c++ - std::string と文字列リテラル間の矛盾
std::string
C++0x の と文字列リテラルの間に不穏な矛盾があることを発見しました。
出力は次のとおりです。
これが発生する理由のメカニズムを理解しています。文字列リテラルは実際には null 文字を含む文字の配列であり、範囲ベースの for ループがstd::end()
文字配列を呼び出すと、配列の末尾を超えてポインターが取得されます。ヌル文字は配列の一部であるため、ヌル文字を超えるポインターを取得します。
ただし、これは非常に望ましくないと思います。確かにstd::string
、文字列リテラルは、長さと同じくらい基本的なプロパティに関しては同じように動作する必要がありますか?
この矛盾を解決する方法はありますか? たとえば、文字配列std::begin()
をstd::end()
オーバーロードして、それらが区切る範囲に終端の null 文字が含まれないようにすることはできますか? もしそうなら、なぜこれが行われなかったのですか?
編集:「レガシー機能」であるCスタイルの文字列を使用した結果に苦しんでいると言っている人たちに私の憤りをもう少し正当化するために、次のようなコードを検討してください:
あなたは何か違うことを期待f("hello")
し、f(std::string("hello"))
するでしょうか?
java - 文字列を文字列リテラルに変換する
文字列を受け取り、対応する文字列リテラルに変換するライブラリ関数はありますか? 例:
Please say\ask "What?" three times!
->"Please say\\ask \"What?\" three times!"
c++ - ファイルエンコーディングはC++11文字列リテラルにどのように影響しますか?
文字列リテラルの前にそれぞれ//を付けることにより、C++11でUTF-8 / 16 u8
/ 32文字列リテラルを記述できます。コンパイラは、これらの新しいタイプの文字列リテラル内に非ASCII文字を含むUTF-8ファイルをどのように解釈する必要がありますか?標準ではファイルエンコーディングが指定されていないことを理解しています。その事実だけでは、ソースコード内の非ASCII文字の解釈が完全に未定義の動作になり、機能の有用性が少し低下します。u
U
で単一のUnicode文字をエスケープできることは理解していますが\uNNNN
、たとえば、通常は複数のUnicode文字を含む完全なロシア語またはフランス語の文ではあまり読みやすくありません。
さまざまな情報源から私が理解していることは、現在のWindows実装やLinux実装などu
と同等になるはずだということです。それを念頭に置いて、古い文字列リテラル修飾子に必要な動作は何であるかについても疑問に思っています...L
U
コードサンプルサルの場合:
理想的な世界では、これらの文字列はすべて同じコンテンツを生成します(変換後の文字のように)が、C ++での私の経験から、これは最も確実に実装定義されており、おそらく最初のものだけが私が望むことを実行することがわかりました。
c++ - C++11での文字列リテラルのUnicodeエンコーディング
関連する質問に続いて、C++11の新しい文字と文字列リテラル型について質問したいと思います。現在、4種類の文字と5種類の文字列リテラルがあるようです。文字の種類:
そして文字列リテラル:
問題はこれです://\x
文字参照はすべての文字列タイプと自由に組み合わせることができますか?すべての文字列型は固定幅ですか?つまり、配列にはリテラルに表示されるのとまったく同じ数の要素が含まれていますか、または//参照は可変バイト数に拡張されますか?文字列にはエンコードセマンティクスがありますか?たとえば、私は言うことができますか?非BMPコードポイントは2ユニットのUTF16シーケンスにエンコードされますか?そして同様に?(1)で、孤独な代理人を書くことはできますか?最後に、文字列関数のいずれかがエンコーディングを認識していますか(つまり、文字を認識し、無効なバイトシーケンスを検出できます)?\u
\U
\x
\u
\U
u""
u8""
char16_t x[] = u"\U0010FFFF"
u8
\u
これは少し自由形式の質問ですが、新しいC++11の新しいUTFエンコーディングとタイプ機能の全体像をできるだけ完全に把握したいと思います。
java - Why isn't "\400" a compile-time error?
Character values between 0 and 255 can be denoted by octal literals from "\000"
to "\377"
.
So shouldn't "\400"
be a compile-time error? Eclipse does not complain, however... what's going on here?