字符
函数(character function)是处理
字符型数据的函数,其
自变量或
函数值中至少有一个是
字符型数据。
C语言
在实际
编程中常需要对个别字符进行处理,C语言也提供了字符
函数。这些函数不能被应用于整个字符串,但可以被应用于字符串中的个别字符。表中罗列了几个最常用且有用的字符函数,使用这些函数必须包含
头文件“ctype.h”。
Visual FoxPro
宏代换函数
格式如下:
&<字符型内存变量>[.字符表达式]
功能:一是替换字符型
内存变量的值,二是将数值型字符转换为数值型数据。如果该函数与其后的字符无明确分界,则要用“.”作为函数结束标识。
例
C2=”Computer”
C=”c&c1’’
?&C1.2*3,&C
输出的结果为:66 Computer
求字符串长度函数
格式如下:
LEN(字符型表达式)
功能:求
字符串的长度,即所包含的字符个数。若是空串,则长度为0。函数值为数值型。
例
?LEN(”计算机学院”),LEN(”我 要 学 习”)
屏幕显示的结果为:10 11(注意”我 要 学 习”,每个字中间都有一个空格)
求子串位置函数
格式如下:
AT(<字符型表达式1>,<字符型表达式2>)
ATC(<字符型表达式1>,<字符型表达式2>)
功能:若<字符型表达式1>的值存在于<字符型表达式2>的值中,则给出<字符型表达式1>在<字符型表达式2>中的开始位置,若不存在,则函数值为0。函数值为数值型。ATC函数在子串比较时不区分字母大小写。
例
?AT(”345”,”123456”),AT(”5”,”12367”)
?AT(”abc”,”ABCDE abcde”),AT(”abc”,”ABDCE abdce”)
输出的值为:3 0
7 0
取子串函数
格式如下:
LEFT(<字符型表达式>,<数值型表达式>)
RIGHT(<字符型表达式>,<数值型表达式>)
SUBSTR(<字符型表达式>,<数值型表达式1>[,<数值型表达式2>])
功能:
LEFT函数从字符型表达式左边的第一个字符开始截取子串,
RIGHT函数从字符型表达式右边的第一个字符开始截取子串。若数值型表达式的值大于0,且小于等于字符串的长度,则子串的长度与数值型表达式值相同。若数值型表达式的值大于字符串的长度,则给出整个字符串。若数值型的表达式小于或等于0,则给出一个空字符串。
SUBSTR函数对字符型表达式从指定位置开始截取若干个字符。起始位置和字符个数分别由数值型表达式1和数值型表达式2决定。若字符个数省略,或字符个数多于从起始位置到原字符串尾部的字符个数,则取从起始位置起,一直到字符串尾的字符串作为函数值。若起始位置或字符个数为0,则函数值为空串。显然SUBSTR函数可以代替LEFT函数和RIGHT函数的功能。
例
STORE”GOOD BYE!”TO X
?LEFT(x,2),SUBSTR(x,6,2),SUBSTR(x,6),RIGHT(x,3)
输出的函数值为:GO BY BYE! YE!
删除字符串前后空格函数
格式如下:
LTRIM(<字符型表达式>)
RTRIM(<字符型表达式>)
ALLTRIM(<字符型表达式>)
功能:
LTRIM删除字符串的前导空格。
RTRIM删除字符串的尾部空格。RTRIM也可写成TRIM。
ALLTRIM删除字符串中的前导和尾部空格。ALLTRIM函数兼有LTRIM和RTRIM函数的功能。
例
STORE SPACE(2)+”TEST”+SPACE(3) TO SS &&SPACE()为产生空格函数
?TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)
?LEN(SS),LEN(TRIM(SS)),LEN(LTRIM(SS)),LEN(ALLTRIM(SS))
输出的结果为:
TESTTEST TEST
9 6 7 4
生成空格函数
格式如下:
SPACX(<数值型表达式>)
功能:生成若干个空格,空格的个数由数值型表达式的值决定。
例
name=SPACE(8)&&等效为变量name为字符型变量,变量值为8个空格
?LEN(LTRIM(name))
&&先用函数LTRIM()删除了变量NAME的空格,再求该函数的长度,故屏幕输出的值为0
字符串替换函数
格式如下:
STUFF(<字符型表达式1>,<数值型表达式1>,<数值表达式2>,<字符型表达式2>)
功能:用<字符型表达式2>去替换<字符型表达式1>中由起始位置开始所指定的若干个字符。起始位置和字符个数分别由数值型表达式1和数值型表达式2指定。如果字符型表达式2的值是空串,则字符型表达式1中由起始位置开始所指定的若干个字符被删除。
例
STORE’中国重庆’ TO x
?STUFF(x,6,4,’北京’),STUFF(X,5,0,”北京”),STUFF(X,5,10,”北京”)
屏幕输出为:中国 北京 中国北京 重庆 中国北京
产生重复字符函数
格式如下:
REPLICATE(<字符型表达式>,<数值型表达式>)
功能:重复给定字符串若干次,次数由数值型表达式给定。
例
?REPLICATE(‘*’,6) &&屏幕输出为:******
大小写字母转换函数
格式如下:
功能:LOWER将字符串中的大写字母转换成小写。
UPPER将字符串中的小写字母转换成大写。
例
a =”ABcd’’
?UPPER(a),LOWER(“a”)
输出的函数值为:ABCD abcd
在字符串中,同一字母的大小写为不同字符,如果利用大小字母转换函数,就可以不考虑字符串中的字母是大写还是小写。
计算字串出现次数函数
格式如下:
OCCURS(<宇符型表达式1>,<字符型表达式2>)
功能:OCCURS()函数返回第一个字符串在第二个字符串中出现的次数,如果第一个字符串不是第二个字符串的子串,则函数值为0。
例
?OCCURS(”R”,”PRTOUTR”) &&输出的结果为:2
字符串匹配函数
格式如下:
LIKE(<字符型表达式1>,<字符型表达式2>)
功能:LIKE()函数比较两个字符串对应位置上的字符,如果所有对应字符都匹配,函数返回逻辑值(.T.),否则返回逻辑值(.F.)。
例
?LIKE(”XY*”,”XYZ”)
输出的结果为:.T.
Linux
字符调试函数如下:
例:从键盘读入一行字符,测试读入字符是否为大写字符。
操作步骤
[root@localhost root]#vim 4-4.c
程序代码如下:
#include”stdio.h”
#include
main()
{
char c;
while((c=getchar())!=飞Ir)
if(isupper(c))
printf(”%c is an uppercase character
”,c);
}
接着用gcc的“一o”参数,将4—4.C程序编译成可执行文件4—4,输入如下:
[root@localhost root]#gce 4-4.c —O 4-4
编译成功后,执行可执行文件4—4,输入字符串“f956GFyffUTR57”,此时系统会出现运行
结果,终端中的显示如下:
[root@localhost root]#./4—4
f956GFyffUTR57
G is an uppercase character
F is an uppercase character
U is an uppercase character
T is an uppercase character
R is an uppercase character