問題タブ [character-arrays]
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.
arrays - 文字を MATLAB 配列として複数回繰り返す方法は?
MATLAB 文字配列内の単一の文字列値を指定すると、次のようになります。
新しい文字配列でこの値を X 回繰り返すにはどうすればよいですか?
例えば:
X = 5
c - C の char ポインターの明確化
私は K&R 第 2 版、第 5 章に取り組んでいます。
87 ページで、文字配列へのポインターが次のように紹介されています。
pmessage
それが単一の文字へのポインタではなく、文字配列へのポインタであることをどうやって知るのでしょうか?
拡張するには、94 ページで、次の関数が定義されています。
上記の関数宣言が単に提供された場合、単一の文字または文字配列が返されるかどうかをどのように知ることができますか?
from の戻り値month_name()
が文字配列であると想定し、a が検出されるまでそれを繰り返したNULL
としても、戻り値が実際には 1 文字だった場合、セグメンテーション違反の可能性はありませんか?
誰かが、単一文字と文字配列へのポインターの宣言と割り当て、関数での使用法、および返された識別を示してもらえますか?
c - 2D 配列への文字列の入力
宿題の一部で、ユーザーは 2D 配列に格納される単語を入力するよう求められます。これらの入力された文字列は、単語検索パズルに隠されます。ユーザーが単語「done」を入力するか、ユーザーが 20 単語を入力するまで、プロンプトはループし続ける必要があります。また、単語が実際のパズルよりも大きい場合は、エラー メッセージが表示され、プロンプトが再びループします。while ループは、この問題に取り組むための最良の方法だと思いました。
これは私がこれまでに持っているものです:
ループは 20 単語が入力されるまで続きますが、「done」という単語が入力された後にプログラムがループを終了するように while ステートメントを再構成するにはどうすればよいですか? また、'done' が入力された場合は、配列に入力しないでください。配列の最後の文字列は、'done' の直前に入力されたものでなければなりません。
c++ - 文字配列に対して std::string を使用する必要があるのはいつですか?
クラス インターフェイスを設計しているときに、かなり頻繁にconst char*
orを使用する必要があるかどうかを座って考えます。const std::string&
次の 2 つの関数プロトタイプを使用します。
関数が文字列を格納する場合、foo
文字列を渡し、可能な場合はムーブ セマンティクスを利用できるため、2 番目のオプションの方が適しています。ただし、foo
文字列を読み取るだけでよい場合、const char*
解決策はより良いでしょうか?
パフォーマンスの観点から、一時的std::string
なものを作成する必要はありません。ただし、既存の文字列を引数として関数を呼び出すと、邪魔に見えます: foo(mystr.c_str())
. さらに悪いことに、将来のある時点でより高度な操作をアレイに対して実行する必要がある場合、またはコピーを保存する必要がある場合は、インターフェイスを変更する必要があります。
だから私の質問はこれです:
個人的なものであれ、そうでないものであれ、明確に定義された規則があり、それがいつ、std::string
またはconst char*
より良い選択であるかを規定していますか? さらに、新しいプロジェクトを開始するときは、使用方法に一貫性を持たせるのが最善ですか、それとも現在のコードのチャンクに最適な方を採用するのが最善でしょうか?
c++ - char 配列/cstring からスペースを削除しますか?
スペースの後に別のスペースがある場合など、文内にある余分なスペースをプログラムで削除することができません。また、ユーザーに続行を求めるために使用している while ループが、関数の実行を妨げています。削除すると、残りのプログラムが実行されます。
これが主な機能です:
私の問題は uppercase_spacing 関数にあります。文内の余分なスペースを削除することはできません。
文を編集するために使用している void 関数は次のとおりです。
私は他のすべてのプログラムでこのブール値を使用しているので、問題はプログラムの主要部分にあると思います。
while ループに使用しているブール関数は次のとおりです。
入力; 引用符はスペースの代わりになります。:
Candy CCandy " " " "something
出力; スペースはまだそこにあります:
キャンディ キャンディ " " " "何か