重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
首先說一下go中的字符串類型:
成都創新互聯公司主營泰安網站建設的網絡公司,主營網站建設方案,成都app開發,泰安h5微信小程序搭建,泰安網站營銷推廣歡迎泰安等地區企業咨詢
字符串就是一串固定長度的字符連接起來的字符序列。Go的字符串是由單個字節連接起來的。Go語言的字符串的字節使用UTF-8編碼標識Unicode文本。
下面介紹字符串的三種遍歷方式,根據實際情況選擇即可。
該遍歷方式==缺點==:遍歷是按照字節遍歷,因此如果有中文等非英文字符,就會出現亂碼,比如要遍歷"abc北京"這個字符串,效果如下:
可見這不是我們想要的效果,根據utf-8中文編碼規則,我們要str[3]str[4]str[5]三個字節合起來組成“北”字及 str[6]str[7]str[8]合起來組成“京”字。由此引出下面第二種遍歷方法。
該方式是按照字符遍歷的,所以不會出現亂碼,如下:
運行結果:
從圖中可以看到第二個漢子“京”的開始下標是6,直接跳過了4和5,可見確實依照utf8編碼方式將三個字節組合成了一個漢字,str[3]-str[5]組合成“北”字,str[6]-str[8]組合成了“京”字。
由于下標的不確定性,所以引出了下面的遍歷方式。
1 可以先將字符串轉成 []rune 切片
2 再用常規方法進行遍歷
運行效果:
由此可見下標是按1遞增的,沒有產生跳躍現象。
go語言的字符串是UTF-8編碼的、不可改變的字節序列。
要修改字符串,只能以原串為基礎,創建一個新串。下面的圖中是一個參考示例,提供了以原串為藍本,創建新串的兩種方法。
代碼
輸出
因為char *strings[]不是指針而是指針數組,那么
temp = strings[top];
strings[top] = strings[seek];
strings[seek] = temp;
這種交換交換的就是主調函數中的數組中的指針,把指向字符串的指針順序改變了,當然按次序輸出就達到排序目的了……