メモリを割り当てずに文字列を逆にする方法についてこの質問がありました。何かお手数ですか?メモリを割り当てずに文字列を逆にする方法
答えて
void reverseStringBetter(char* str)
{
int i, j;
i=j=0;
j=strlen(str)1;
for (i=0; i<j; i++, j-)
{
str[i] ^= str[j] ;
str[j] ^= str[i] ;
str[i] ^= str[j] ;
}
}
'j = strlen(str)1;'にタイプミスがありますか? ?? –
また、forループで 'j-' –
他の答えがあると、あなたの答えは間違っているようですが、とにかくそれを受け入れました! NSStringのようなバイトを入れ替えることができたとしても、それはうまくいかないでしょう。 http://www.objc.io/issue-9/unicode.htmlによると、NSStringはutf-16でエンコードされており、インデックスはコードポイント(文字)ではなくコードユニットを参照します。 –
NSString
は不変なので、メモリの割り当ての有無にかかわらず、NSString
を取り消すことはできません。
NSMutableString
は、その内容を置き換えるために提供する唯一の方法は、あなたが割り当てなければならないだろうNSString
、で指定される新しい文字を必要とするので、あなたは、メモリを割り当てない場所でNSMutableString
を元に戻すことはできません。
CFMutableString
にも同じ「問題」があります。
NSString
では不可能であり、唯一の方法は新しい文字列を作成するためではありません。
これはあなたが探しているものではないかもしれませんが、NSString
を通常のC文字列に変換し、その場で編集することができます。あなたはまだメモリを割り当てていますが、文字列を修正することで、必要なものの半分以上を得ることができます。
私はあなたのユースケースがメモリを割り当てたくないかどうか、またはこれが単に仮説的なものかどうかは分かりません。
- 1. CPythonの文字列 - メモリ割り当て
- 2. 文字列の割り当てメモリ
- 3. 文字列に文字を割り当てる方法は?
- 4. JVMが静的文字列変数にメモリを割り当てる方法は?
- 5. 構造体の文字列にメモリを割り当てる
- 6. 構造体内の文字列にメモリを割り当てる
- 7. 文字列作成と文字配列メモリ割り当て
- 8. Pythonの文字列にアイテムを割り当てる方法
- 9. 文字列変数をdatableに割り当てる方法は?
- 10. C文字数を知らずに文字列を割り当てます
- 11. 文字配列にmallocの代わりに共有ポインタを使用してメモリを割り当てる方法
- 12. C++で文字列配列を割り当てる方法は?
- 13. Cの文字ポインタに文字列を割り当てる方法は?
- 14. 文字列へのダブルポインタの配列にメモリを割り当てる?
- 15. リスト内の文字列を動的にメモリに割り当てるC
- 16. C - メモリを割り当て、ハッシュテーブルの配列に文字列をコピー
- 17. メモリを割り当てずにオブジェクトを構築する方法は?
- 18. リンクリストノードの文字列に動的にメモリを割り当てます
- 19. Segfaultを文字列への逆参照ポインタに割り当てる場合
- 20. 文字列リテラルを割り当てる方法
- 21. ポインターの配列の関数にメモリを割り当てて値を割り当てる方法は?
- 22. 動的なメモリ割り当てのC++文字列
- 23. ベクトル内の文字列のメモリ割り当て
- 24. 文字列リテラルstrcpyのメモリ割り当て
- 25. 文字列オブジェクトへのメモリの割り当て?
- 26. 配列メモリ割り当て
- 27. 文字列の配列の値を "Name" +#に割り当てる方法。 C++
- 28. 子要素に文字列配列を割り当てる方法は?
- 29. Cで別の文字配列にchar配列を割り当てる方法
- 30. 配列の配列の配列にメモリを割り当てる方法
質問はCocoaとNSStringと関連していますか? – Costique
ああ、これは古典的な求人インタビューの質問です(そして、あなたはおそらくこれに "インタビュー"タグを追加するべきです)。 –
私はこれに対する答えを見つけました。そして、それを実装することができました - 誰もそれが現れなければ明日答えを投稿します。 – vivianaranha