[解決済み] C関数から文字列を返す
2022-03-15 20:39:45
質問
3年以上C言語を使っていないので、いろいろと錆びついています。
バカバカしいと思うかもしれませんが、今のところ、関数から文字列を返すことができません。という前提でお願いします。を使うことができません。
string.h
を使用します。
以下は私のコードです。
#include <ncurses.h>
char * getStr(int length)
{
char word[length];
for (int i = 0; i < length; i++)
{
word[i] = getch();
}
word[i] = '\0';
return word;
}
int main()
{
char wordd[10];
initscr();
*wordd = getStr(10);
printw("The string is:\n");
printw("%s\n",*wordd);
getch();
endwin();
return 0;
}
文字列をキャプチャすることができます(私の
getStr
関数が必要です)しかし、正しく表示させることができません(文字化けが発生します)。
ご協力をお願いします。
解決方法は?
呼び出し側でスタックに文字列を確保し、関数に渡すか。
void getStr(char *wordd, int length) {
...
}
int main(void) {
char wordd[10 + 1];
getStr(wordd, sizeof(wordd) - 1);
...
}
または、文字列を静的にして
getStr
:
char *getStr(void) {
static char wordd[10 + 1];
...
return wordd;
}
または、ヒープ上に文字列を割り当てる。
char *getStr(int length) {
char *wordd = malloc(length + 1);
...
return wordd;
}
関連
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] C言語の構造体(CGRectやCGPointなど)をNSLog化することは可能ですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
未定義の `__isoc99_sscanf' への参照
-
コンパイルエラー:可変長オブジェクトが初期化されていない可能性があります。
-
C: 1を求める! + 2! + 3! + ... + n! (ループ)
-
[解決済み] Valgrind が初期化されていないバイトについて警告する
-
[解決済み] mallocで文字列を確保する
-
[解決済み] Xcode - 警告。C99 では関数の暗黙の宣言は無効です。
-
[解決済み] ⑭と⑯は何のためにあるのですか?
-
[解決済み] Cコードの単体テスト【終了しました
-
[解決済み] なぜsizeof(x++)はxをインクリメントしないのですか?
-
[解決済み] C言語でファイルが存在するかどうかを確認する最も良い方法は何ですか?