問題タブ [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.

0 投票する
1 に答える
1390 参照

c# - 変数文字列を正規表現でキャプチャしますか?

C# では、変数を使用して次のキャプチャ パターンを使用しようとしています。これは間違っているのでしょうか。info_name は、メソッドに渡す文字列変数です。

しかし、それは私にエラーを与えます.')'は途中で予想されます. これによりエラーは発生しません。

これを解決策として使用することはできません。タグを閉じる直前の " をキャプチャする必要があります。

0 投票する
3 に答える
202 参照

.net - C#の式を文字列として取得するにはどうすればよいですか?

多くの場合、式、パラメーター、ステートメントなどの名前が必要です。次に例を示します。

たとえば、次のように使用できるキーワードを使用して、これらの文字列リテラルを自動的に取得する方法はありますtypeof(string)か?それとも、リフレクションに基づくシンプルでパフォーマンスの高いアプローチはありますか?

このパラメーターをチェックしてログに記録する方法を探していません(これは実際には単なる例です)。コードの一部をとして取得するメソッドを探していますstring

以下はより正確であり、コンパイラーによってチェックされ、コードをリファクタリングするときにも考慮されます。

0 投票する
3 に答える
336 参照

c - 時間変数サイズの文字列リテラルをCでコンパイルします

DDのために何をすべきですか?

もしも

次のようにHEADING文字列リテラルを取得したい:

=記号または私が一度入れたものはすべて<==...==>内で繰り返され、HEADING_TITLE_PROJECT_NAMEスペースを埋めます。

この方法または他の方法で行うことができますか。 コーディング時にHEADING_TITLE_PROJECT_NAMEを変更したいだけで、他には何も変更しません。 それができるかどうかだけ考えてください:)

<==編集開始==>次のようなもの

<==編集終了==>

0 投票する
2 に答える
2303 参照

java - 文字列であるが文字列リテラルではない @RequestMapping の値を使用することは可能ですか?

RequestMapping で Enum 値を使用する方法はありますか?

Enum に既に格納されている URL 値を使用したいと考えています。

ただし、文字列リテラル以外のものを に入れようとすると、コンパイル時にエラーが発生しRequestMappingます。

文字列リテラルと文字列リテラルではない文字列の違いをどのように認識しますか (それが何と呼ばれているかわかりません)。

これは私が試したものですが、コンパイル時に失敗しました:

私も使ってみString.formatましたが、それも好きではありません:

0 投票する
2 に答える
2407 参照

c++ - 文字列リテラルを定数式で添え字化できますか?

constexpr式は「constexprで定義された不揮発性オブジェクトを参照する、またはそのようなオブジェクトのサブオブジェクトを参照するリテラル型のglvalue」(§5.19/ 2)の値を取ることができるため、これは有効です。)::

ただし、文字列リテラルはこの説明に適合しないようです。

2.14.5 / 8は、文字列リテラルのタイプを説明しています。

通常の文字列リテラルおよびUTF-8文字列リテラルは、ナロー文字列リテラルとも呼ばれます。狭い文字列リテラルの型は「arrayofnconst char」です。ここで、nは以下に定義する文字列のサイズであり、静的な保存期間があります。

このタイプのオブジェクトは、一時的なものであり、静的な保存期間(5.19 / 2、上記のスニペットの直後)ではない場合にのみ、インデックスを作成できるように思われます。

[constexpr左辺値から右辺値への変換を許可]…定数式で初期化された、存続期間が終了していない不揮発性一時オブジェクトを参照するリテラル型のglvalue

一時オブジェクトの左辺値を取ることは通常「不正行為」であるため、これは特に奇妙です。このルールは、次のような参照型の関数の引数に適用されると思います。

GCC 4.7は、その価値については受け入れますが、「'._0'の値は定数式では使用できない」ためget_1( "hello" )拒否します…それでも、ケースラベルまたは配列バインドとして受け入れられます"hello"[1]"hello"[1]

ここでいくつかの標準的なヘアを分割しています…分析は正しいですか、そしてこの機能の設計意図はありましたか?

編集:ああ…これにはいくつかの動機があります。この種の式は、プリプロセッサでルックアップテーブルを使用する唯一の方法のようです。たとえば、これにより、SOME_INTEGER_FLAG1または5でない限り無視されるコードのブロックが導入され、6より大きい場合は診断が行われます。

この構成は、C++11の新機能です。

0 投票する
5 に答える
7739 参照

c - バス エラーのトラブルシューティング

文字列を逆にしようとしています。

これは私が試したコードです:

コードは を出力しBus error : 10ます。

しかし、同じコードを次のように書き直すと:

それは完全にうまく機能します。

最初のコードがバス エラーまたはセグメンテーション エラーをスローするのはなぜですか?

0 投票する
6 に答える
3337 参照

c++ - 渡されたパラメータを文字列リテラルに制限する

文字列リテラルをラップし、コンパイル時にサイズを計算するクラスがあります。

コンストラクターは次のようになります。

ただし、コードに問題があります。次のコードがコンパイルされ、エラーになります。

c文字列リテラルのみを受け入れるようにコンストラクターを制限する方法はありますか?コンパイル時の検出が推奨されますが、より良い方法がない場合はランタイムを使用できます。

0 投票する
3 に答える
1445 参照

c - 実行可能ファイルのコード内に文字列を埋め込む方法は?

実行可能ファイルの周りのさまざまな場所で使用されている文字列リテラルがあります。

次のようなことを言いましょう:

これで、この文字列リテラルは文字通り埋め込まれているため、実行可能コード内で非常に明白になります。

mov [ptr + 4], 0x65文字通り文字列を埋め込むのではなく、たとえば、アセンブリ命令(eg)命令を生成して文字列を作成するようにコンパイラに強制することで、これを回避する方法はありますか?

どんな種類の難読化もしたくありません-実行可能ファイル内で文字列を明確にしないようにしたいだけです。(また、文字列が使用されるすべての場所でコードを変更する必要はありません。)

これは可能ですか?

0 投票する
1 に答える
15403 参照

c++ - Unicode 文字列リテラル

C++11 では、新しい文字列リテラル プレフィックスのセットが導入されています (さらに、ユーザー定義のサフィックスも使用できます)。さらに、Unicode エスケープ シーケンスを直接使用して、エンコーディングを気にせずに特定のシンボルをコーディングできます。

wchar_tしかし、文字列リテラルでもUnicode エスケープ シーケンスを使用できますか? これができないとしたら、それは欠陥のように思われます。

の整数値はsw[0]もちろん、特定のプラットフォームにあるものに依存しwchar_tますが、他のすべての効果に対して、これは移植可能であるはずですよね?

0 投票する
4 に答える
2502 参照

c++ - C++ での C 文字列と文字列リテラルの理解

文字列リテラルと C 文字列についていくつか質問があります。

したがって、次のようなものがある場合:

私が理解しているように、文字列リテラルは、たとえばアドレス 0xA0 から始まり 0xA9 で終わるなど、終端の null バイトを使用してメモリ内に作成され、そこからアドレスが返されるか、型 char [ ] にキャストされます。住所・アドレス。

これを実行することは合法です:

この意味で、型 char [ ] にキャストされている限り、文字列リテラルを変更できますか?

しかし、通常のポインターでは、メモリ内の文字列リテラルを指すと、ほとんどのコンパイラが割り当てられたメモリを定数の下限アドレス空間で「読み取り専用」としてマークするため、内容を変更できないことがわかりました。

私が理解しようとしているのは、配列のように char * 型が文字列リテラルを指して定数を変更できないのはなぜですか? 文字列リテラルが char [ ] のように char * にキャストされないのはなぜですか? ここで間違った考えを持っている場合、または完全に間違っている場合は、お気軽に修正してください。