文字列の改行を消す
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 件のコメント:
コメントを投稿