substr函数返回值?函数可以没有返回值
大家好,感谢邀请,今天来为大家分享一下substr函数返回值的问题,以及和函数可以没有返回值的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
在下列函数中,函数返回值为数值的是( )。
【答案】:C
STR(<数值表达式>):数值转换成字符串函数,返回值为字符串;SPACE(<数值表达式>)返回由指定数目的字符串,返回值是字符串;AT(.<字符表达式>,<字符表达式>)返回第一表达式的首字母在第二个表达式中出现的位置,返回值是数值;SUBSTR(<字符表达式>,<起始位置>[,<长度>])从表达式指定位置截取一个指定长度的字符串,返回值是字符串。
解析使用substr截取UTF-8中文字符串出现乱码的问题
我们知道有时候使用substr来截取UTF-8中文字符串的时候,经常会出现乱码,为什么会出现这样的问题呢,本文告诉你答案。
看这样一段代码吧(字符编码为UTF-8):
复制代码
代码如下:
<?
$str
=
'都知道strlen与mb_strlen是求字符串长度的函数';
echo
strlen($str)'.<br
/>'.mb_strlen($str,'utf-8');
?>
运行上述代码,返回值如下:
66
34
怎么样?strlen中,中文是三个字节的长度,英文则是一个字节的长度!mb_strlen中,都被计算为一字节的长度!所以,我们有时候用substr来截取UTF-8中文字符串的时候,经常会出现乱码,就是这个原因了!
下面提供一个截取UTF-8字符串的函数:
复制代码
代码如下:
function
cutstr($sourcestr,$cutlength){
$returnstr
=
'';
$i
=
0;
$n
=
0;
$str_length
=
strlen($sourcestr);
$mb_str_length
=
mb_strlen($sourcestr,'utf-8');
while(($n
<
$cutlength)
&&
($i
<=
$str_length)){
$temp_str
=
substr($sourcestr,$i,1);
$ascnum
=
ord($temp_str);
if($ascnum
>=
224){
$returnstr
=
$returnstr.substr($sourcestr,$i,3);
$i
=
$i
+
3;
$n++;
}
elseif($ascnum
>=
192){
$returnstr
=
$returnstr.substr($sourcestr,$i,2);
$i
=
$i
+
2;
$n++;
}
elseif(($ascnum
>=
65)
&&
($ascnum
<=
90)){
$returnstr
=
$returnstr.substr($sourcestr,$i,1);
$i
=
$i
+
1;
$n++;
}
else{
$returnstr
=
$returnstr.substr($sourcestr,$i,1);
$i
=
$i
+
1;
$n
=
$n
+
0.5;
}
}
if
($mb_str_length
>
$cutlength){
$returnstr
=
$returnstr
.
"...";
}
return
$returnstr;
}
使用例子:
复制代码
代码如下:
<?
$str
=
'有效期最长三个月,超过有效期系统将自动删除本条信息';
//echo
strlen($str);
//echo
'<hr
/>'.mb_strlen($str,'utf-8');
echo
'<hr
/>'.$str;
echo
'<hr
/>'.cutstr($str,24);
?>
求Visual Foxpro常用函数
Visual Foxpro函数一、数值函数
数值函数用于数值运算,其自变量与函数都是数值型数据。
1.取绝对值函数ABS()
【格式】ABS(<nExp>)
【功能】计算nExp的值,并返回该值的绝对值。
2.指数函数EXP()
【格式】EXP(<nExp>)
【功能】求以e为底、nExp值为指数的幂,即返回ex的值。
3.取整函数INT()
【格式】INT(<nExp>)
【功能】计算nExp的值,返回该值的整数部分。
4.上界函数CEILING()
【格式】CEILING(<nExp>)
【功能】计算nExp的值,返回一个大于或等于该值的最小整数。
5.下界函数FLOOR()
【格式】FLOOR(<nExp>)
【功能】计算nExp的值,返回一个小于或等于该值的最大整数。
6.自然对数函数LOG()
【格式】LOG(<nExp>)
【功能】求nExp的自然对数。nExp的值必须为正数。
7.常用对数函数
【格式】LOG10(<nExp>)
【功能】求nExp的常用对数。nExp的值必须为正数。
8.平方根函数SQRT()
【格式】SQRT(<nExp>)
【功能】求非负nExp的平方根。
9.最大值函数MAX()和最小值函数MIN()
【格式】MAX(<nExp1>,< nExp2>[,< nExp3>...])
MIN(<nExp1>,< nExp2>[,< nExp3>...])
【功能】返回数值表达式中的最大值MAX()和最小值MIN()。
10.求余数函数MOD()
【格式】MOD(<nExp1>,<nExp2>)
【功能】返回nExp1除以nExp2的余数。余数的小数位数与nExp1相同,符号与nExp2相同。
11.四舍五入函数ROUND()
【格式】ROUND(<nExp1>,< nExp2>)
【功能】返回nExp1四舍五入的值, nExp2表示保留的小数位数。
12.π函数PI()
【格式】PI()
【功能】返回常量π的近似值
13.正弦函数SIN()
【格式】SIN(<nExp>)
【功能】返回nExp的正弦值。nExp以弧度为单位,函数值域为[-1,1]。
14.余弦函数COS()
【格式】COS(<nExp>)
【功能】返回nExp的余弦值。nExp以弧度为单位,函数的值域为[-1,1]。
15.正切函数TAN()
【格式】TAN(<nExp>)
【功能】返回nExp的正切值。nExp以弧度为单位,其值为π/2或-π/2时,系统返回一个绝对值很大的数。
16.反正弦函数ASIN()
【格式】ASIN(<nExp>)
【功能】返回nExp的反正弦值。自变量值必须在[-1,1]内,函数值为弧度,且值域为[-π/2,π/2]。
17.反余弦函数ACOS()
【格式】ACOS(<nExp>)
【功能】返回nExp的反余弦值。自变量的值必须在[-1,1]内,函数值为弧度,值域为[-π/2,π/2]。
18.反正切函数ATAN()
【格式】ATAN(<nExp>)
【功能】返回nExp的反正切值。函数值为弧度,值域为(-π/2,π/2)。二、字符函数
字符函数是处理字符型数据的函数,其自变量或函数值中至少有一个是字符型数据。函数中涉及的字符型数据项,均以cExp表示。
1.子串位置函数
【格式】AT(<cExp1>,< cExp 2>)
【功能】返回串cExp1在串cExp2中的起始位置。函数值为整数。如果串cExp2不包含串cExp1,函数返回值为零。
2.取左子串函数LEFT()
【格式】LEFT(<cExp>,<nExp>)
【功能】返回从cExp串中第一个字符开始,截取nExp个字符的子串。
3.取右子串函数RIGHT()
【格式】RIGHT(<cExp>,< nExp>)
【功能】返回从cExp串中右边第一个字符开始,截取nExp个字符的子串。有关说明同LEFT()函数。
4.取子串函数SUBSTR()
【格式】SUBSTR(<cExp>,<nExp1> [,< nExp2>])
【功能】返回从串cExp中第nExp1个字符开始,截取nExp2个字符的子串。
5.字符串长度函数LEN()
【格式】LEN(<cExp>)
【功能】返回cExp串的字符数(长度)。函数值为N型。
6.删除字符串前导空格函数LTRIM()
【格式】LTRIM(<cExp>)
【功能】删除cExp串的前导空格字符。
7.删除字符串尾部空格函数RTRIM()| TRIM()
【格式】RTRIM| TRIM(<cExp>)
【功能】删除cExp串尾部空格字符。
8.空格函数SPACE()
【格式】SPACE(<nExp>)
【功能】返回一个包含nExp个空格的字符串。
9.字符串替换函数STUFF()
【格式】STUFF(<cExp1>,<nExp1>,<nExp2>,<cExp2>)
【功能】从nExp1指定位置开始,用cExp2串替换 cExp1串中nExp2个字符。
10.字符复制函数 REPLICATE()
【格式】REPLICATE(<cExp>,<nExp>)
【功能】返回将cExp串重复nExp次的字符串。
11.定义输出格式函数 TRANSFORM()
【格式】TRANSFORM(<eExp>,<cExp>)
【功能】按格式描述式cExp指定的格式,输出任意表达式eExp的值。
12.大小写转换函数LOWER()和UPPER()
【格式】LOWER(<cExp>)
UPPER(<cExp>)
【功能】LOWER()将cExp串中字母全部变成小写字母,UPPER()将cExp串中字母全部变成大写字母,其它字符不变。
13.宏替换函数&
【格式】&< cVar>[.< cExp>]
【功能】替换出字符型变量cVar中字符。三、日期时间函数
日期时间函数是处理日期型或日期时间型数据的函数。其自变量为日期型表达式dExp或日期时间型表达式tExp。
1.系统日期函数DATE()
【格式】DATE()
【功能】返回当前系统日期,此日期由Windows系统设置。函数值为D型。
2.系统时间函数TIME()
【格式】TIME([<nExp>])
【功能】返回当前系统时间,时间显示格式为hh:mm:ss。若选择了nExp,则不管为何值,返回的系统时间还包括秒的小数部分,精确至小数点后两位。函数值为C型。
3.日期函数DAY()
【格式】DAY(<dExp>)
【功能】返回dExp式中的天数。函数值为N型
4.星期函数DOW()、CDOW()
【格式】DOW(<dExp>)
CDOW(<dExp>)
【功能】DOW()函数返回dExp式中星期的数值,用1~7表示星期日~星期六。函数值为N型。CDOW()函数返回dExp式中星期的英文名称。函数值为C型。
5.月份函数MONTH()、CMONTH()
【格式】MONTH(<dExp>)
CMONTH(<dExp>)
【功能】MONTH()函数返回dExp式中月份数。函数值为N型。CMONTH()函数则返回月份的英文名。函数值为C型。
6.年份函数YEAR()
【格式】YEAR(<dExp>)
【功能】函数返回dExp式中年份值。函数值为N型。四、转换函数
在数据库应用的过程中,经常要将不同数据类型的数据进行相应转换,满足实际应用的需要。Visual FoxPro系统提供了若干个转换函数,较好地解决了数据类型转换的问题。
1.ASCII码函数ASC()
【格式】ASC(<cExp>)
【功能】返回cExp串首字符的ASCII码值。函数值为N型。
2.ASCII字符函数CHR()
【格式】CHR(<nExp>)
【功能】返回以nExp值为ASCII码的ASCII字符。函数值为C型。
3.字符日期型转换函数CTOD()
【格式】CTOD(<cExp>)
【功能】把“××/××/××”格式的cExp串转换成对应日期值。函数值为D型。
4.日期字符型转换函数DTOC()
【格式】DTOC(<dExp>〔, 1〕)
【功能】把日期dExp转换成相应的字符串。函数值为C型。
5.数值字符型转换函数STR()
【格式】STR(<nExp1>[,< nExp2>][,< nExp3>])
【功能】将nExp1的数值转换成字符串形式。函数值为C型。
6.字符数值型转换函数VAL()
【格式】VAL(<cExp>)
【功能】将cExp串中数字转换成对应数值,转换结果取两位小数。函数值为N型。五、测试函数
在数据库应用的操作过程中,用户需要了解数据对象的类型、状态等属性,Visual FoxPro提供了相关的测试函数,使用户能够准确地获取操作对象的相关属性。
1.数据类型函数TYPE()
【格式】TYPE(<cExp>)
【功能】返回cExp串表示的数据对象的数据类型,返回值是一个表示数据类型的大写字母。C:字符型,D:日期型,N:数值型,L:逻辑型,M:备注型,G:通用型,U:未定义。
2.文件查找函数FILE()
【格式】FILE(<cExp>)
【功能】根据cExp串中指定路径查找文件,如未指定路径,则在默认目录中查找。文件存在,返回逻辑真(.T.)值,否则为逻辑假(.F.)值。
3.条件测试函数IIF()
【格式】IIF(<lExp>,<eExp 1>,<eExp2>)
【功能】逻辑表达式lExp值为真(.T.),返回表达式eExp1的值,否则返回表达式eExp2的值。eExp1和eExp2可以是任意数据类型的表达式。
4.表结束标志测试函数EOF()
【格式】EOF([<工作区号>|<别名>])
【功能】测试记录指针是否移到表结束处。如果记录指针指向表中尾记录之后,函数返回真(.T.),否则为假(.F.)。
5.表起始标识测试函数BOF()
【格式】BOF([<工作区号>|<别名>])
【功能】测试记录指针是否移到表起始处。如果记录指针指向表中首记录前面,函数返回真(.T.),否则为假(.F.)。工作区说明见EOF()函数。
6.当前记录号函数RECNO()
【格式】RECNO([<工作区号>|<别名>])
【功能】返回指定工作区中表的当前记录的记录号。对于空表返回值为1。
7.当前记录逻辑删除标志测试函数DELETED()
【格式】DELETED([<工作区号>|<别名>])
【功能】测试指定工作区中表的当前记录是否被逻辑删除。如果当前记有逻辑删除标记,函数返回真(.T.),否则为假(.F.)。
8.记录数函数RECCOUNT()
【格式】RECCOUNT([<工作区号>|<别名>])
【功能】返回指定工作区中表的记录个数。如果工作区中没有打开表则返回0。
9.记录大小测试函数RECSIZE()
【格式】RECSIZE( [<工作区号>|<别名>])
【功能】返回指定工作区中表的记录总长度。如果工作区中没有打开表则返回0。
10.屏幕列坐标和行坐标函数 COL()、ROW()
【格式】COL()
ROW()
【功能】COL()返回光标的列坐标值,ROW()返回光标的行坐标值。
11.打印机列坐标和行坐标函数PCOL(),PROW()
【格式】PCOL()
PROW()
【功能】返回打印机打印头所处位置的列坐标和行坐标。
好了,文章到此结束,希望可以帮助到大家。