国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
批處理中的字符串處理詳解
2008年03月25日 14:57
首先說(shuō)一下,批處理和高級(jí)語(yǔ)言不同,沒(méi)有字符串處理函數(shù),比如strcat之類(lèi)的,但是卻可以利用環(huán)境變量來(lái)實(shí)現(xiàn)這些函數(shù)的功能。
本文對(duì)照C語(yǔ)言中的字符串處理函數(shù),講解在批處理中的實(shí)現(xiàn)方法。

首先說(shuō)一下字符串的存儲(chǔ),在C語(yǔ)言中,采用字符數(shù)組或者字符指針來(lái)存儲(chǔ)字符串,而B(niǎo)AT中沒(méi)有這些東東,所以要依靠環(huán)境變量來(lái)存儲(chǔ)。
設(shè)置環(huán)境變量的語(yǔ)句為set語(yǔ)句,本文不詳細(xì)介紹了,參考set /?語(yǔ)句。

1、C語(yǔ)中的strcpy函數(shù),將一個(gè)字符串復(fù)制到另一個(gè)字符型指針或字符數(shù)組,覆蓋原來(lái)的字符串。

C語(yǔ)言中的調(diào)用方法:strcpy(目標(biāo)字符串,源字符串)

在批處理中的實(shí)現(xiàn)方法:

set 目標(biāo)字符串=%源字符串%

示例:
復(fù)制內(nèi)容到剪貼板
代碼:
@echo off
::關(guān)閉屏幕回顯(可選)
set str1=This is old string
::設(shè)置str1中存儲(chǔ)的字符串,注意沒(méi)有雙引號(hào),這點(diǎn)與C語(yǔ)言等不同!
set str2=This is new string
::設(shè)置str2中存儲(chǔ)的字符串
echo 執(zhí)行字符串拷貝以前:
echo str1=%str1%
echo str2=%str2%
::先輸出一次原有的字符串
set str1=%str2%
::字符串拷貝
echo 執(zhí)行字符串拷貝以后:
echo str1=%str1%
echo str2=%str2%
::輸出執(zhí)行完字符串拷貝后的字符串
echo 輸出完畢,按任意鍵退出&&pause>nul&&exit
::輸出信息,當(dāng)用戶(hù)按任意鍵時(shí),結(jié)束該批處理。
效果圖:


2、C語(yǔ)中的strcat函數(shù),將一個(gè)字符串連接到另一個(gè)字符型指針或字符數(shù)組的末尾。

C語(yǔ)言中的調(diào)用方法:strcat(目標(biāo)字符串,源字符串)

在批處理中的實(shí)現(xiàn)方法:

set 目標(biāo)字符串=%目標(biāo)字符串%%源字符串%

示例:
復(fù)制內(nèi)容到剪貼板
代碼:
@echo off
set str1=This is string1
set str2=This is string2
::設(shè)置str1和str2中存儲(chǔ)的字符串
echo 連接字符串以前:
echo str1=%str1%
echo str2=%str2%
::先輸出一次原有的字符串
set str1=%str1%%str2%
::字符串連接
echo 連接字符串以后:
echo str1=%str1%
echo str2=%str2%
::輸出執(zhí)行完字符串連接后的兩個(gè)字符串
echo 輸出完畢,按任意鍵退出&&pause>nul&&exit
效果圖:


3、字符串截取,C中沒(méi)有這種函數(shù),不過(guò)可以通過(guò)語(yǔ)句實(shí)現(xiàn),不再介紹,直接說(shuō)批處理的。

set 目標(biāo)字符串=%源字符串:~起始值,截取長(zhǎng)度%

注意,起始值從0開(kāi)始!
截取長(zhǎng)度是可選的,如果省略逗號(hào)和截取長(zhǎng)度,將會(huì)從起始值一直截取到字符串的結(jié)尾。

示例:
復(fù)制內(nèi)容到剪貼板
代碼:
@echo off
set str1=This is string1
::設(shè)置str1中存儲(chǔ)的字符串
set str2=%str1:~8,6%
set str3=%str1:~0,4%
set str4=%str1:~5%
::字符串截取
echo 原字符串:
echo str1=%str1%
echo 截取得到的字符串:
echo str2=%str2%
echo str3=%str3%
echo str4=%str4%
::輸出執(zhí)行結(jié)果
echo 輸出完畢,按任意鍵退出&&pause>nul&&exit
效果圖:


4、C語(yǔ)中的strlen函數(shù),取得字符串的長(zhǎng)度。

C語(yǔ)言中的調(diào)用方法:strlen(字符串)

在批處理中的實(shí)現(xiàn)方法是利用goto和標(biāo)簽,形成循環(huán)結(jié)構(gòu),不斷將字符串截短1字符,并用變量記錄截短的次數(shù),直到字符串變成空串。

示例:
復(fù)制內(nèi)容到剪貼板
代碼:
@echo off
set str1=This is a test string
set str2=Hello World
::設(shè)置兩個(gè)字符串
set str=%str1%
::將str1復(fù)制到str
:next1
::標(biāo)簽,用于goto跳轉(zhuǎn)
::注意與注釋語(yǔ)句的區(qū)別,注釋用兩個(gè)冒號(hào)開(kāi)頭,標(biāo)簽則為一個(gè)冒號(hào)
if not "%str%"=="" (
::判斷str是不是空串,如果不是則執(zhí)行下邊的語(yǔ)句
set /a num+=1
::算術(shù)運(yùn)算,使num的值自增1,相當(dāng)于num++或者++num語(yǔ)句
set "str=%str:~1%"
::截取字符串,賦給自身
goto next1
::跳轉(zhuǎn)到next1標(biāo)簽
::這里利用goto和標(biāo)簽,構(gòu)成循環(huán)結(jié)構(gòu)
)
::當(dāng)以上循環(huán)結(jié)構(gòu)執(zhí)行完畢時(shí),會(huì)執(zhí)行下邊的語(yǔ)句
echo str1=%str1%
echo str1的長(zhǎng)度為:%num%
::輸出結(jié)果
set num=0
::將記和用的環(huán)境變量num置0,以便開(kāi)始下一次運(yùn)算。
set str=%str2%
::將str2復(fù)制到str
:next2
::定義一個(gè)新的標(biāo)簽
::注意不能與已有的標(biāo)簽同名,否則會(huì)出錯(cuò)!
if not "%str%"=="" (
set /a num+=1
set "str=%str:~1%"
goto next2
)
::和上一個(gè)循環(huán)相似,不再介紹
echo str2=%str2%
echo str2的長(zhǎng)度為:%num%
::輸出結(jié)果
echo 輸出完畢,按任意鍵退出&&pause>nul&&exit
效果圖:


5、C語(yǔ)中的strchr函數(shù),在一個(gè)字符串中查找一個(gè)字符的首次出現(xiàn)位置,找到時(shí)返回所在位置,找不到時(shí)返回0值。

批處理中的思路:不斷截短字符串,并取截短后字符串中的首字符,和要求的字符比較,如果相同就利用goto語(yǔ)句跳出循環(huán),輸出結(jié)果,如果沒(méi)有相同的字符,執(zhí)行到最后就輸出0值。

示例:
復(fù)制內(nèi)容到剪貼板
代碼:
@echo off
Setlocal ENABLEDELAYEDEXPANSION
::啟用命令擴(kuò)展,參加setlocal /?命令
set str1=This is a test string
set ch1=t
::注意,這里是區(qū)分大小寫(xiě)的!
set str=%str1%
::復(fù)制字符串,用來(lái)截短,而不影響源字符串
:next
if not "%str%"=="" (
set /a num+=1
if "!str:~0,1!"=="%ch1%" goto last
::比較首字符是否為要求的字符,如果是則跳出循環(huán)
set "str=%str:~1%"
goto next
)
set /a num=0
::沒(méi)有找到字符時(shí),將num置零
:last
echo 字符'%ch1%'在字符串"%str1%"中的首次出現(xiàn)位置為%num%
echo 輸出完畢,按任意鍵退出&&pause>nul&&exit
效果圖:
引用:
最后出幾道題,看看大家學(xué)習(xí)的怎么樣!
(1)如何實(shí)現(xiàn)C語(yǔ)言中strstr函數(shù)的功能?
提示:strstr函數(shù)的功能是在字符串1中查找字符串2,找到時(shí)返回串2首次出現(xiàn)的位置,否則返回0值。與strchr區(qū)別就是,第二個(gè)參數(shù)是字符串,而不是字符了。

(2)如何用批處理構(gòu)建while循環(huán)?
提示:while循環(huán)一般格式為:
while(表達(dá)式)
{
循環(huán)體
[break|continue;]
循環(huán)體
}
其中,循環(huán)體為0條或多條語(yǔ)句,break用于跳出循環(huán),continue用于直接判斷表達(dá)式并決定是否進(jìn)入下一次循環(huán)。
一般執(zhí)行順序:首先判斷表達(dá)式,如果成立則進(jìn)入循環(huán),循環(huán)體執(zhí)行完畢后再次判斷表達(dá)式的值,決定是否再次循環(huán)。

(3)如何用批處理構(gòu)建do-while循環(huán)?
提示:do-while循環(huán)一般格式為:
do
{
循環(huán)體
[break|continue;]
循環(huán)體
}while(表達(dá)式);
各個(gè)語(yǔ)句的解釋參照while循環(huán)。
一般執(zhí)行順序:首先進(jìn)入循環(huán),循環(huán)體執(zhí)行完畢后判斷表達(dá)式的值,表達(dá)式成立則再次進(jìn)入循環(huán)。
By 小宋
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
DOS批處理中的字符串處理詳解(字符串截取)
關(guān)于批處理的學(xué)習(xí)之三
批處理命令學(xué)習(xí)之:set命令詳解
批處理常用符號(hào)詳解
DOS里如何判斷文件大小及其它?我的一些
批處理中怎么讀取文本中指定行數(shù)?
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服