Lua程式設計練習題第四章

2021-10-03 15:50:57 字數 2478 閱讀 4998

lua 語言中的字串是不可變值,但可以建立乙個新字串 的方式來達到修改的目的。

字串長度獲取:

str="abcd"

print(#str) ->4

print(string.len(str)) ->4

連線兩個字串:可以使用連線操作符 .. (兩個點)來進行字串連線 如果運算元中存在數值,那麼lua 語言會先把數值轉換成字串

"hello".."world"           ->helloworld
字串常量:可以使用一對雙引號或單引號來宣告字串常量

強制型別轉換:如果需要顯式地將乙個字串轉換成數值,那麼可以使用函式 tonumbe 當這個字串的內容不能表示為有效數字時該函式返回 nil ;否則,該函式就按照 lua 語法掃瞄器的規則返回對應的整型值或浮點型別值。

(預設情況 ,函式 tonumber 使用的是十進位制,但是也可以指明使用二進位製到 十六進製制之間的任意進製)

tonumber (" 100101 ", 2) --> 37 

tonumbe (" fff ", 16) --> 4095

tonumber ("- zz", 36 ) --> -1295

tonumber (" 987 ", 8) --> nil

呼叫函式 to string 可以將數值轉換成字串

string.rep(s,n)返回將宇符串重複n次的結果

函式 string. reverse(s) 用於字串翻轉函式

函式 string. lower(s)返回乙份 的副本,其中所有的大寫字母都被轉換成小寫字母, 而其他字元則保持不變;

函式 string.upper(s)與之相反,該函式會將寫字母轉換成大寫字母.

函式string.sub(s,i,j)從字串s中提取第i個到第j個字元(包括第i個和第j個字元,第乙個字元的索引為1,記住哦!!!不是0!!)

函式 string.char接收零個或多個整數作為引數,然後將每個整數轉換成對應的字元,最後返回由這些連線而成的字串

string.byte(s, i, j) 返回索引 i 到 j 之間(包括 i 和 j )的所有字元的數值

函式 string.format 是用於進行字串格式化和將數值輸出為字串的強大工具

函式 string.find 用於在指定的字串中進行

模式搜尋

函式 string.gsub則把所有匹配的模式用另乙個字串替換

string.rep("abc",3)  			->abcabcabc

string.reverse("abc") ->cba

string.lower("abc") ->abc

string.upper("abc") ->abc

string.sub("abc",1,2) ->ab

print( string.byte (" abc ", 1 , 2)) -- > 97 98

string.format ("x = %d y = %d ", 10, 20) -- > x = 10 y = 20

string.find ("hello world ","wor ") -- > 7 9

string.gsub("hello world","l","#") ->he##o wor#d 3

練習4.3:

function  insert (astr,start,bstr)

if start==1 then

return bstr..astr

else

return string.sub(astr,1,start-1)..bstr..string.sub(astr,start,#astr)

end

練習4.5

function remove(str,start,len)

return string.sub(str,1,start-1)..string.sub(str,start+len,#str);

end

練習4.7

思路一:每個字元每個字元的比較。

function ispali(str)

for i=1,#str//2 do

if string.byte(str,i,i)~=string.byte(str,#str-i+1,#str-i+1) then

return false;

endend

return true;

end

思路二:直接將字串反轉過來比較。

fucntion ispali(str)

return string.reverse(str)==str;

end

第四章習題

一。填空題 1 基 派生 2 單繼承 多繼承 3 私有繼承方式 4 公有 保護 5 多繼承 6 支配原則 7 解決二義性 8 使用作用域運算子 引進虛基類 二。選擇題 1 5 b cd abc c a 6 10 c b d ad a 三。判斷題 f t f t f f 四。簡答題 1.在物件導向技術...

第四章 習題

一 填空題 1 如類果類a繼承了b,那麼類a被稱為 基類,而類b被稱為 派生類。2 c 的兩種繼承為 單繼承和 多繼承。3 在預設情況下的繼承方式為 私有繼承方式 4 從基類中公有派生乙個類時,基類的公有成員就成為派生類的 公有 成員,而這個基類的保護成員就成為派生類的 保護成員。5 c 提供了 多...

C Primer Plus 程式設計練習第四章

1 include int main char b 10 printf 請輸入您的姓名 scanf s,s a,b getchar printf 歡迎您 s,s 請輸入您的姓名 scanf s a getchar int len strlen a printf d n len printf s n ...