文字列の改行を消す
Cで入力文字列を扱っているとfgetsなど改行まで入り込む場合があります。それを消すための簡単なコード。例:
#include <stdio .h> #include <string .h> #define LEN 32 /* 最期に入る改行を取り除く関数 */ void lntrim(char *str) { char *p; p = strchr(str, '\n'); if(p != NULL) { *p = '\0'; } } int main() { char str[LEN]; puts("[trim]"); printf("Please input string > "); fgets(str, sizeof(str), stdin); /* trim 前*/ printf("[%s]\n", str); lntrim(str); /* trim 後 */ printf("[%s]\n", str); return 0; }文字列からstrchr関数で文字のある場所を探しだし改行('\n')を('\0')終端に変えています。
strchr関数を使わない場合はループでマッチさせて同じように書き換えます。
/* strchr を使わない改行削除 */ void lntrim(char *str) { int i = 0; while(1) { if(str[i] == '\n') { str[i] = '\0'; break; } i++; } }
0 件のコメント:
コメントを投稿