字元函式

字元函式(character function)是處理字元型數據的函式,其自變數函式值中至少有一個是字元型數據

基本介紹

  • 中文名:字元函式
  • 外文名:character function
  • 套用領域:計算機等
  • 涉及程式語言:C語言,Linux等
  • 操作對象:字元
  • 屬性:計算機函式
C語言,Visual FoxPro,宏代換函式,求字元串長度函式,求子串位置函式,取子串函式,刪除字元串前後空格函式,生成空格函式,字元串替換函式,產生重複字元函式,大小寫字母轉換函式,計算字串出現次數函式,字元串匹配函式,Linux,

C語言

在實際編程中常需要對個別字元進行處理,C語言也提供了字元函式。這些函式不能被套用於整個字元串,但可以被套用於字元串中的個別字元。表中羅列了幾個最常用且有用的字元函式,使用這些函式必須包含頭檔案“ctype.h”。
ctype.h的字元判斷函式
函式名為如下參數時,返回值為真, 否則為零
isalpha()
字母
isblank()
標準的空白字元(空格、換行或水平制表符)或任何其他預定義指定為空白符的字元
isdigit()
阿拉伯數字
islower()
小寫字母
isupper()
大寫字母
isspace()
空白字元:空格、換行、走紙、回車、垂直制表符、水平制表符或任何其他預定義指定的字元
ctype.h的字元映射函式
tolower()
若參數是大寫字母,返回相應的小寫字母,否則返回原始參數
toupper()
若參數是小寫字母,返回相應的大寫字母,否則返回原始參數

Visual FoxPro

宏代換函式

格式如下:
&<字元型記憶體變數>[.字元表達式]
功能:一是替換字元型記憶體變數的值,二是將數值型字元轉換為數值型數據。如果該函式與其後的字元無明確分界,則要用“.”作為函式結束標識。
C2=”Computer”
C1="2"
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(<字元型表達式>)
功能: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

字元調試函式如下:
字元調試函式
函式名功能
isalnum
測試字元是否為英文或數字
isalpha
測試字元是否為英文字母
isascii
測試字元是否為ASCII碼字元
isentrl
測試字元是否為ASCII碼的控制字元
isdigit
測試字元是否為阿拉伯數字
islower
測試字元是否為小寫字母
isprint
測試字元是否為可列印字元
isspace
測試字元是否為空格字元
ispunct
測試字元是否為標點符號或特殊符號
isupper
測試字元是否為大寫英文字母
isxdigit
測試字元是否為十六進制數字
例:從鍵盤讀入一行字元,測試讀入字元是否為大寫字元。
操作步驟
步驟1編輯源程式代碼。
[root@localhost root]#vim 4-4.c
程式代碼如下:
#include”stdio.h”
#include<ctype.h>
main()
{
char c;
while((c=getchar())!=飛Ir)
if(isupper(c))
printf(”%c is an uppercase character\n”,c);
}
步驟2gcc編譯程式。
接著用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

相關詞條

熱門詞條

聯絡我們