Loading [MathJax]/extensions/tex2jax.js

2015年9月26日土曜日

文字列から改行文字を消す(C言語)

文字列の改行を消す

Cで入力文字列を扱っているとfgetsなど改行まで入り込む場合があります。それを消すための簡単なコード。

例:
  1. #include <stdio .h>  
  2. #include <string .h>  
  3.   
  4. #define LEN 32  
  5.   
  6. /* 最期に入る改行を取り除く関数 */  
  7. void lntrim(char *str) {  
  8.   char *p;  
  9.   p = strchr(str, '\n');  
  10.   if(p != NULL) {  
  11.     *p = '\0';  
  12.   }  
  13. }  
  14.   
  15.   
  16. int main() {  
  17.   
  18.   char str[LEN];  
  19.   
  20.   puts("[trim]");  
  21.   
  22.   printf("Please input string > ");  
  23.   fgets(str, sizeof(str), stdin);  
  24.   
  25. /* trim 前*/  
  26.   printf("[%s]\n", str);  
  27.   
  28.   lntrim(str);  
  29. /* trim 後 */  
  30.   printf("[%s]\n", str);  
  31.   
  32.   return 0;  
  33.   
  34. }  
文字列からstrchr関数で文字のある場所を探しだし改行('\n')を('\0')終端に変えています。

strchr関数を使わない場合はループでマッチさせて同じように書き換えます。


  1. /* strchr を使わない改行削除 */  
  2. void lntrim(char *str) {  
  3.   int i = 0;  
  4.   while(1) {  
  5.     if(str[i] == '\n') {  
  6.       str[i] = '\0';  
  7.       break;  
  8.     }  
  9.     i++;  
  10.   }  
  11. }  

0 件のコメント:

コメントを投稿

Pythonで地図空間データを扱う⑤

ベースの地図が出来た所で、他のデータを被せてみます。 国土地理院の  500mメッシュ別将来推計人口データ  を使用します。 同じく神奈川県のデータ  500m_mesh_suikei_2018_shape_14.zip をダウンロードします。 ベースの地図データと同じ場所に展開...