本文整理汇总了C++中VString::setn方法的典型用法代码示例。如果您正苦于以下问题:C++ VString::setn方法的具体用法?C++ VString::setn怎么用?C++ VString::setn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VString
的用法示例。
在下文中一共展示了VString::setn方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: str_split
// split `source' with `regexp_str' regexp
VArray str_split( const char* regexp_str, const char* source, int maxcount )
{
VArray arr;
VRegexp re;
int z = re.comp( regexp_str );
ASSERT( z );
if ( ! z ) return arr;
const char* ps = source;
while( ps && ps[0] && re.m( ps ) )
{
if ( maxcount != -1 )
{
maxcount--;
if ( maxcount == 0 ) break;
}
VString s;
s.setn( ps, re.sub_sp( 0 ) );
arr.push( s );
ps += re.sub_ep( 0 );
}
if ( ps && ps[0] )
arr.push( ps );
return arr;
}
示例2: str_split_simple
// split `source' with exact string `delimiter_str'
VArray str_split_simple( const char* delimiter_str, const char* source, int maxcount )
{
VArray arr;
const char* ps = source;
const char* fs;
int rl = strlen( delimiter_str );
VString s;
while( (fs = strstr( ps, delimiter_str )) )
{
if ( maxcount != -1 )
{
maxcount--;
if ( maxcount == 0 ) break;
}
int l = fs - ps;
s.setn( ps, l );
arr.push( s );
ps = (const char *)(ps + l + rl);
}
if ( ps && ps[0] )
arr.push( ps );
return arr;
}
示例3: sub
VString VRegexp::sub( int n )
{
VString substr;
if ( ! ok() ) return substr;
if ( ! lp ) return substr;
if ( opt_mode == MODE_REGEXP )
{
if ( n < 0 || n >= rc ) return substr;
int s = sp[n*2];
int e = sp[n*2+1];
int l = e - s;
substr.setn( lp + s, l );
}
else
{
if ( n != 0 ) return substr;
substr.setn( lp + pos, pl );
}
return substr;
};
示例4: vfu_get_dir_name
//.........这里部分代码省略.........
}
else
{
dmain = target;
dtail = target;
str_sleft( dmain, lastslash+1 );
str_trim_left( dtail, lastslash+1 );
}
*/
__glob_gdn( dmain, dtail, dir_list );
z = dir_list.count()-1;
if (dir_list.count())
{
if ( dir_list.count() > 1)
{
int mc = 0; /* match count */
int mi = 0; /* match letter index */
while(4)
{
mc = 0;
int li; /* counter */
for ( li = 0; li < dir_list.count(); li++ )
{
if ( str_get_ch( dir_list[ 0], mi ) ==
str_get_ch( dir_list[li], mi ) )
mc++;
}
if ( mc != dir_list.count() )
break;
mi++;
}
target.setn( dmain + dir_list[0], str_len( dmain ) + mi );
pos = str_len( target );
say2( target, cINPUT );
con_xy( pos+1, con_max_y() );
vfu_beep();
ch = con_getch();
if ( ch != 9 ) { dir_list.undef(); continue; }
dir_list.sort();
con_chide();
z = vfu_menu_box( 10, 5, "Complete...", &dir_list );
con_cshow();
ch = 0;
}
else
ch = 0;
if ( z != -1 )
{
while( str_len( target ) > 0 && target[-1] != '/' )
str_chop( target );
target += dir_list[z];
}
pos = str_len( target );
dir_list.undef();
if (ch != 0) continue;
}
else
{ /* no match found -- cannot complete */
vfu_beep();
}
}