input_str_form

trim_left_lfでfgetsの末尾の改行問題が解決したので、これで入力フォーム関数input_str_formが作れる・・・。

#include <stdio.h>
#include <string.h>

int trim_left_lf(char *str);

void input_str_form(char *caption, char *buf, int size);

captionは入力フォームのタイトル、bufに入力文字列を格納するバッファ、sizeにバッファのサイズを指定する・・・。
中でtrim_left_lfを呼んでるので、そのプロトタイプ宣言、stdio.h、string.hは当然必要となる・・・。

input_str_formの仕組みは単純・・・。

まず、fputsでcaptionを出力・・・。

次に、fgetsで入力文字列をbufに格納・・・。

bufをtrim_left_lfにかけて、改行を除去・・・。

これだけである・・・。

あとは、このフォームで入力された文字列を他の関数でパースするなり、煮るなり、焼くなり・・・。

入力文字列をただ出力してみる・・・。

$ ./input_str_form
str: hoge foo bar
str = hoge foo bar
$

改行はされないし、スペースもいける・・・。

https://github.com/bg1bgst333/Test/blob/master/c/input_str_form/input_str_form/src/input_str_form/input_str_form.c