機試筆記4 字串

2022-09-19 01:12:13 字數 2026 閱讀 3037

字串相關基礎知識

預設在c++環境下,加入標頭檔案#include ,如果要使用c的char str來表示字串,輸入一串字串可以使用gets(),但不可以使用c++的getline

可以使用sort(str,str+strlen())來進行字串排序。

也可以使用string str,加入標頭檔案#include ,可以通過getline進行輸入,排序則使用sort(str.begin(),str.end());來進行排序。

字串查詢函式,find(查詢內容),未找到返回-1

題型1.統計字元

這裡要注意的就是統計變數count要在每次統計完乙個字元後清零。

題型2.大小寫轉換

對乙個字串中的所有單詞,如果單詞的首字母不是大寫字母,則把單詞的首字母變成大寫字母。 在字串中,單詞之間通過空白符分隔,空白符包括:空格(' ')、製表符('\t')、回車符('\r')、換行符('\n')。

這道題要注意"如果單詞的首字母不是大寫字母,則把單詞的首字母變成大寫字母。"也就是說可能有大寫的情況,第乙個字母和後面的字母要分開處理。

#include #include 

using

namespace

std;

intmain()}}

cout

<< str<}

return0;

}

題型三.統計子串出現次數

#include #include 

using

namespace

std;

intmain()

if(flag==0

) sum_m++;

}cout

<< sum_m

}

題型四.字串加密

編寫加密程式,加密規則為:將所有字母轉化為該字母後的第三個字母,即a->d、b->e、c->f、......、y->b、z->c。小寫字母同上,其他字元不做轉化。輸入任意字串,輸出加密後的結果。

要注意的就是x到z的轉化,第一種方法是

if(s[i]>'z')  s[i]-=26;

第二種方法是

s[i] = 'a'+(s[i]+3-'a')%26;

題型四.字串刪除

#include #include 

#include

using

namespace

std;

intmain()

;

for(int i=0;i)

}if(flag==0

) }

for(int i=0;i)

cout

}

如果題目要求不區分大小寫,一律刪除,可以先把字串轉化成全小寫,再進行

for(int i=0;i)

else

btype[i]=b[i];

}

將乙個字串中的某個單詞替換成另乙個單詞

#include#include

#include

#include

using

namespace

std;

intmain()

while (cin.get() != '\n'

); cin >> a >> b;//

接收待替換字串和要替換成的字串

for (int i = 0;i < v.size();i++)

if(i != v.size() - 1)

else

}return0;

}

例題,輸出不同的字串

#includeusing

namespace

std;

intmain()

cout

}

可以利用set來計算,如果還要知道各個相同的字串的個數,可以使用map

面試筆記2(字串)

1.子串的定義時 串中任意個連續的字元組成的子串行,並規定空串是任意串的子串,任意串是其自身的子串。子串行則不要求字元連續,但順序與其在主串中相一致。2.字串末尾的 0意義同0,在c c 中0被轉化為bool型別的false,在條件語句中。3.printf語句在輸出字串時,將 0當做字串的結尾。4....

4 字串分隔

連續輸入字串,請按長度為8拆分每個字串後輸出到新的字串陣列 長度不是8整數倍的字串請在後面補數字0,空字串不處理。輸入描述 連續輸入字串 輸入2次,每個字串長度小於100 輸出描述 輸出到長度為8的新字串陣列 示例1 輸入 abc 123456789 輸出 abc00000 12345678 900...

華為機試訓練4 字串分隔

輸入描述 連續輸入字串 輸入多次,每個字串長度小於100 輸出描述 輸出到長度為8的新字串陣列示例1 輸入描述中有提到輸入多次 rl.on line function input rl.on close function else 多組輸出 res.foreach output console.lo...