C/C++ ポインタ入門 > 文字列関数 > trim_right
Nobuhide Tsuda
Nov-2013
末尾の空白類文字を削除:void my_trim_right(char *str)
#include <string.h> // for strlen
void my_trim_right(char *str)
{
char *ptr = str + strlen(str); // コピー元アドレスを保持するためのポインタ
while( ptr > str && (*(ptr-1) == ' ' || *(ptr-1) == '\t') ) { // ポインタの指す直前文字が、空白類である間、
--ptr; // ポインタを前に戻す
}
*ptr = '\0';
}
解説:
- はじめに、char へのポインタ ptr を宣言し、str + strlen(stgr) で初期化します。つまり、ヌル文字をポイントするようにします。
- ptr の指す場所の前の文字が空白類(半角空白またはTab)の間ポインタを前に戻すことで、消すべき文字をスキップします。
- 一番最初が空白であっても大丈夫なように ptr > str を条件に加えておきます。
- さいごに、ptr の指す位置にヌル文字('\0')を書き込むだけです。
前:
| 次: