版权归原作者所有,如有侵权,请联系我们

[科普中国]-字符函数

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

C语言

在实际编程中常需要对个别字符进行处理,C语言也提供了字符函数。这些函数不能被应用于整个字符串,但可以被应用于字符串中的个别字符。表中罗列了几个最常用且有用的字符函数,使用这些函数必须包含头文件“ctype.h”。1

|| || ctype.h的字符判断函数

|| || ctype.h的字符映射函数

Visual FoxPro宏代换函数格式如下:2

&[.字符表达式]

功能:一是替换字符型内存变量的值,二是将数值型字符转换为数值型数据。如果该函数与其后的字符无明确分界,则要用“.”作为函数结束标识。

C2=”Computer”

C1="2"

C=”c&c1’’

?&C1.2*3,&C

输出的结果为:66 Computer

求字符串长度函数格式如下:

LEN(字符型表达式)

功能:求字符串的长度,即所包含的字符个数。若是空串,则长度为0。函数值为数值型。

?LEN(”计算机学院”),LEN(”我 要 学 习”)

屏幕显示的结果为:10 11(注意”我 要 学 习”,每个字中间都有一个空格)

求子串位置函数格式如下:

AT(,)

ATC(,)

功能:若的值存在于的值中,则给出在中的开始位置,若不存在,则函数值为0。函数值为数值型。ATC函数在子串比较时不区分字母大小写。

?AT(”345”,”123456”),AT(”5”,”12367”)

?AT(”abc”,”ABCDE abcde”),AT(”abc”,”ABDCE abdce”)

输出的值为:3 0

7 0

取子串函数格式如下:

LEFT(,)

RIGHT(,)

SUBSTR(,[,])

功能: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和数值型表达式2指定。如果字符型表达式2的值是空串,则字符型表达式1中由起始位置开始所指定的若干个字符被删除。

STORE’中国重庆’ TO x

?STUFF(x,6,4,’北京’),STUFF(X,5,0,”北京”),STUFF(X,5,10,”北京”)

屏幕输出为:中国 北京 中国北京 重庆 中国北京

产生重复字符函数格式如下:

REPLICATE(,)

功能:重复给定字符串若干次,次数由数值型表达式给定。

?REPLICATE(‘*’,6) &&屏幕输出为:******

大小写字母转换函数格式如下:

LOWER()

UPPER()

功能:LOWER将字符串中的大写字母转换成小写。

UPPER将字符串中的小写字母转换成大写。

a =”ABcd’’

?UPPER(a),LOWER(“a”)

输出的函数值为:ABCD abcd

在字符串中,同一字母的大小写为不同字符,如果利用大小字母转换函数,就可以不考虑字符串中的字母是大写还是小写。

计算字串出现次数函数格式如下:

OCCURS(,)

功能:OCCURS()函数返回第一个字符串在第二个字符串中出现的次数,如果第一个字符串不是第二个字符串的子串,则函数值为0。

?OCCURS(”R”,”PRTOUTR”) &&输出的结果为:2

字符串匹配函数格式如下:

LIKE(,)

功能:LIKE()函数比较两个字符串对应位置上的字符,如果所有对应字符都匹配,函数返回逻辑值(.T.),否则返回逻辑值(.F.)。

?LIKE(”XY*”,”XYZ”)

输出的结果为:.T.

Linux字符调试函数如下:3

|| || 字符调试函数

**例:**从键盘读入一行字符,测试读入字符是否为大写字符。

操作步骤

步骤1编辑源程序代码。

[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\n”,c);

}

步骤2用gcc编译程序。

接着用gcc的“一o”参数,将4—4.C程序编译成可执行文件4—4,输入如下:

[root@localhost root]#gce 4-4.c —O 4-4

步骤3运行程序。

编译成功后,执行可执行文件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