首页 > 编程知识 正文

oracle中rtrim函数,vb中rtrim是什么函数

时间:2023-05-05 18:05:10 阅读:151011 作者:719

trim系列函数用于删除字符串中前后的空格和其他字符。 ltrim函数仅删除字符串的第一个字符,而rtrim函数仅删除字符串末尾的字符。

我在github上有关于PHP源代码的更详细的注释。 感兴趣的人请看看周围,给star。 PHP5.4源代码注释。 您可以在commit记录中查看添加的注释。

修剪

stringtrim(string$str (,string $ character _ mask='tnrx0b ' ) )

参数说明

character_mask

缺省值为空白字符,如' tnr0x0B '。

.可以指定范围的字符。 请注意“.”的左右两侧有一对合法的范围值,如果传递了不正确的值,则会报告错误。

执行示例

首先来看看正常的使用方法:

$str='hello . ';

$new_str=trim($str,'.'; //结果是hello

是奇怪的结果。 这里报告错误是因为,php将.的左右视为范围值,其中“.”的左侧为字符“.”,在php内部视为缺少右边界的范围值。

$str='hello . ';

$second_str=Trim($str,'.'; //报告错误

第二个参数使用有效的边界值。

$str='helloabcdefg ';

$new_str=trim($str,' a.g ); //输出hello

trim执行步骤

trim、ltrim和rtrim这三个函数都是调用php_do_trim函数的,不同之处在于第二个参数mode。 本文主要对trim函数进行分析,ltrim和rtrim函数与trim相似。 而且,php_do_trim调用php_trim来实现功能,所以在trim函数的核心函数的情况下是php_trim函数。 执行步骤如下。

1、根据what的值设置保存过滤器字符的mask数组

2 .过滤字符串开头的要过滤的字符

3、过滤字符串末尾的过滤对象字符

php_trim函数执行的流程图如下。

解读源代码

php_trim函数先调用了php_charmask。 此函数尝试将过滤器字符设置为mask[char]=1的形式。 这是一个散列数组,可用于以后的判断。 如果第二个参数是范围值,则调用memset函数以向mask数组赋值。

使用mode变量确定要过滤的内容时,这里有一个小的优化。 PHP内部使用and运算,而不是多个判断条件。 部分代码如下所示。

if (模式1 ) {

for(I=0; i len; I ) {

if(mask((unsignedchar ) c(I ) ) ) )

trimmed

} else {

布雷克;

}

}

len -=trimmed;

c =trimmed;

}

if (模式2 ) {

for(I=Len-1; i=0; I----) {

if(mask((unsignedchar ) c(I ) ) ) )

len----;

} else {

布雷克;

}

}

}

判断的过程:

1 1==1左需要过滤

2 1==0左边不需要过滤

3 1==1左需要过滤

1 2==0右边不需要过滤

2 2==1右边需要过滤

3 2==1右边需要过滤

以这种方式使用位操作可以提高程序效率,使代码更简洁、更易读。

总结

阅读此函数的源代码,首先了解到在C语言中,如果需要创建键值对数组,并且键值为单个字符,则可以使用unsigned char类型创建数组下标,从而可以构建以类似字符为下标的映射数组

二是通过使用位运算来提高程序的效率和代码的可读性。

原创文章,文章有限,初浅学,文章如有不正之风,万望告知。

如果这篇文章有用的话,请点击推荐。 谢谢^_^

最后再安利一次吧。 我在github上有关于PHP源代码的更详细的注释。 感兴趣的人请看看周围,给star。 PHP5.4源代码注释。 您可以在commit记录中查看添加的注释。

添加PHP源文章:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。