< NTサービスの作り方 | Main Apartment Must Not Exit While Process Does OLE Work >

October 29, 2004

文字列の前後のホワイトスペースを取り除く関数

いわゆる TRIM 関数です。

//------------------------------------------------------------------------
//   trim						(文字列からホワイトスペースを取り除く)    
//------------------------------------------------------------------------
//  戻り値	: 先頭ポインタ
//------------------------------------------------------------------------
char *trim(
	char	*lpszString )	// (in)	処理対象の文字列
{
	char	*ps;	// 空白文字を除いた先頭
	char	*pe;	// 空白文字を除いた最後尾
	char	*p;		// ワークポインタ




	// 先頭を見つける
	for ( ps = lpszString; *ps; ps++ ) {
		if ( ( 0x81 == *ps ) && ( 0x40 == *( ps + 1 ) ) ) {	// 全角スペース
			ps++;
		}
		else if  ( 0x20 < *ps ) {		// ホワイトスペース以外→先頭
			break;
		}
		}

	// 最後を見つける
	for ( p = pe = ps; *p; p++ ) {
		if ( ( 0x81 == *p ) && ( 0x40 == *( p + 1 ) ) ) {	// 全角スペース
			p++;
		}
		else if  ( 0x20 < *p ) {		// ホワイトスペース以外→最後尾?
			pe = p;
		}
	}

	// コピー
	for ( p = lpszString; ps <= pe; ) {
		*p++ = *ps++; 
	}
	
	*p = '\0';
	return lpszString;
}

トラックバック

このエントリーにトラックバック:
http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/712

コメント

コメントする

※ コメントスパム対策のため、コメント本文はおはよう、こんにちわ、こんばんわのいずれかより始めるようにしてください。

name:
email:

※ 必要ですが、表示しません。

url:
情報を保存する ?