文字列の改行を消す
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関数を使わない場合はループでマッチさせて同じように書き換えます。
- /* strchr を使わない改行削除 */
- void lntrim(char *str) {
- int i = 0;
- while(1) {
- if(str[i] == '\n') {
- str[i] = '\0';
- break;
- }
- i++;
- }
- }
0 件のコメント:
コメントを投稿