[解決済み] ゼロ終端のバイト配列を文字列に変換するにはどうすればよいですか?
2022-03-18 17:36:33
質問
を読みたいのですが。
[100]byte
を大量に転送するために
string
のデータを使用します。
のすべてではないので
string
の残りの部分は、正確に100文字になります。
byte array
で埋め尽くされます。
0
s.
を変換すると
[100]byte
を
string
によって
string(byteArray[:])
、テーリング
0
として表示されます。
^@^@
s.
C言語では
string
で終了します。
0
を変換するにはどうしたらよいでしょうか?
byte array
を
string
をGoで?
どのように解決するのですか?
バイトスライスにデータを読み込むメソッドは、読み込んだバイト数を返します。 その数を保存しておき、それを使って文字列を作成する必要があります。もし
n
が読み取ったバイト数であれば、次のようなコードになります。
s := string(byteArray[:n])
完全な文字列に変換する場合は、これを使用します。
s := string(byteArray[:len(byteArray)])
と同等である。
s := string(byteArray[:])
何らかの理由で
n
を使用することができます。
bytes
パッケージを使用して、入力にヌル文字が埋め込まれていないと仮定して、それを見つけることができます。
n := bytes.Index(byteArray[:], []byte{0})
また、iczaさんのご指摘の通り、以下のようなコードも使えます。
n := bytes.IndexByte(byteArray[:], 0)
関連
-
[解決済み] go get でパッケージをインストールするにはどうしたらいいですか?
-
[解決済み] Goテスト文字列が部分文字列を含む
-
[解決済み] golangでnilはどういう意味ですか?
-
[解決済み] Goでint値をstringに変換する方法は?
-
[解決済み] "宣言されているが使用されていない "という迷惑なエラーを回避する方法
-
[解決済み] Goで文字列を整数型に変換する?
-
[解決済み】マップからキーのスライスを取得する
-
[解決済み】Goで設定を処理する方法【終了しました
-
[解決済み】複数ファイルのGoプロジェクトを整理する【クローズド
-
[解決済み】アプリケーションの自動ビルドによるバージョン管理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み] Go: パニック: ランタイム エラー: 無効なメモリ アドレスまたは nil ポインタのデリファレンス
-
[解決済み] Goプロセスをフォークする方法を教えてください。
-
GOROOT に xxx というパッケージがないというエラーが GoLand から報告される
-
go build error, error can't load package: package xxx is not in GOROOT (D:\basic_tool╱GoGoSrc╱)
-
[解決済み] Golangで定数mapを宣言するには?
-
[解決済み] Goの:=と=の演算子の違い
-
eclipse+goclipseプラグイン+gdbによるgo言語開発デバッグ環境の構築 ---最終起動シーケンスでのエラー MIコマンドの実行に失敗しました。
-
[解決済み】複数ファイルのGoプロジェクトを整理する【クローズド
-
[解決済み】スライスの最後の要素を取得する方法は?