在做leetcode時發現乙個問題。
題目如下:題目位址
題目不難,很容易做出來。
問題出現在自己寫的**裡,**如下:
class solution
i++;
if (tmp[1] - tmp[0] >= 2)
}return result;}};
雖然提交通過了,但是在看for (; s[i - 1] == s[i]; i++)這一條語句時越看越不對勁。沒錯,你可能會覺得可能會造成訪問越界。然而提交程式通過了,原因是string類在最後乙個有效字元後面還存在乙個空字元,即s[s.size()] = 』 \0』。s[s.size()]是可以訪問的,但是s[s.size() + n], n>=1是會報錯的。
保險起見**應該變為:
for (; s[i - 1] == s[i] && i < s.size(); i++)
最後測試一下string類的size()函式是如何判斷字元截止的。
#include #include using namespace std;
int main() {
// 定義乙個內容為"\0"的字串
string s1("\0");
cout<
但是不可以在初始化時將單獨的\放在最後。
// 定義乙個內容為"123456\"的字串
string s11("123456\");
cout<
C string類中的字串查詢
c string類中的字串查詢 類string提供了大量查詢功能和搜尋功能,其中比較常用的查詢和搜尋函式是find 函式 find first not of 函式 find first of 函式 find last not of 函式 find last of 函式 rfind 等。find 函式...
c string類字串查詢
1 find 函式 find 函式用於在 string 字串中查詢子字串出現的位置,它其中的兩種原型為 size t find const string str,size t pos 0 const size t find const char s,size t pos 0 const 第乙個引數為...
C String類的實現
參考c primer.string類的實現,清翔兔 06,jan.include using namespace std class string string void private char m data inline string string const char str if str m...