C400

152. 先行ブランクのトリム

C言語で先行ブランクをトリムするための
trimr という関数はない。
strspn を使ってブランクでない最初の文字が現れる位置を
探すことによって最初のブランクでない文字を見つけるようにする。

[ TESTTRM ]

ソースはこちらから

0001.00 #include                                  
0002.00 #include                                 
0003.00 #include                                 
0004.00 #include  /* triml */                  
0005.00                                                    
0006.00 #define TRUE         0                             
0007.00 #define FALSE       -1                             
0008.00                                                    
0009.00 void main(void){                                   
0010.00    char str[128];                                  
0011.00    int  len, pos;                                  
0012.00                                                    
0013.00    printf("** TESTTRM : トリム関数のテスト **n"); 
0014.00    getchar();                                      
0015.00                                                    
0016.00    strcpy(str, "   ABC    ");                      
0017.00    pos = strspn(str, " ");                         
0018.00    printf("%sn", &str[pos]);                      
0019.00    getchar();                                      
0020.00 } 


                                                  

[解説]

pos = strspn(str, ” “); によって最初にプランクでない位置 posを見つける。