06用d程式設計 串

2021-10-03 09:09:39 字數 2150 閱讀 4673

最簡單定義:char是串,字元陣列

d有三種陣列型別.

import std.stdio;

void

main()

//用(c-z)可以看到結果,否則《回車》沒用.

readf不適合讀串,讀符就差不多了.

readln適合讀串,就不需要%s及&運算子了.

如下:

import std.stdio;

void

main()

可用std.stringstrip去掉.

import std.stdio;

import std.string;

void

main()

string name = strip(readln());,無參readln()返回剛才讀的行.

std.formatformattedread,可用於解析輸入.

import std.stdio;

import std.string;

import std.format;

void

main()

""為串,''為符.

string, wstring,和dstring都是不變的,可修改char,wchar,dchar是不變的.

string cannotbemutated =

"hello"

; cannotbemutated[0]

='h'

;//編譯錯誤

//及char

a_slice =

"hello"

;//編譯錯誤

"hello",char為切片,如果能編譯,則能修改這個串,這個串就不是不變的了.可用.dup提供副本.

import std.stdio;

void

main()

切片與串是不相容的關係.有切片就不能有串.

string result = s ~ '.';編譯有問題.

string result = (s ~ '.').idup;..idup用於生成不可變副本.

切片=>串(idup),串=>切片(dup).

這個utf8串,看起來的長度與實際的長度不一樣.

為避免unicode問題,請使用相關文字庫.

import std.stdio;

void

main()

串連線

import std.stdio;

import std.string;

void

main()

//比較串

import std.stdio;

import std.string;

void

main()

else

else

writeln

("'"

, former,

"' comes before '"

, latter,

"'.");

}}

相應處理串函式

小寫串與大寫是不一樣的,不過可忽略大小寫比較(icmp),串是陣列,所以可用陣列如std.array, std.algorithm, 和 std.range中相關函式…

05用d程式設計切片

切片,動態陣列的別名.起.尾 是這樣的 即左包右不包 切片不是實體,就像鑰匙一樣.如果切片修改實體,則實體也跟著變了.a.a 大小為0,a.表示陣列長度,等價於陣列.長度.dup複製實體.如下 import std.stdio void main 賦值 int 3 a 1 1,1 int 3 b 2...

08用d程式設計域

不能在內部域中定義與外部域中相同的名字.有的在域的最前定義變數 一般在使用前定義變數,而不是在之後.找不到,也不規範 最好在剛要使用前定義,在速度,不犯錯,可讀,維護上都不錯.import std.stdio void main i 10 i 在 中宣告多種型別變數 d官方程式設計風格 三元符.三個...

11用d程式設計開關

switch expression if else等塊,會引進域.而case不會.switch value 可用goto.goto case 走到下個 goto default goto case 走到 表示式必須是整,串,極,即串可用作例.switch dievalue 值可以有區間.還可以並列....