字串編輯(刪除 插入 替換)

2021-10-08 19:41:31 字數 1794 閱讀 3351

字串編輯

描述從鍵盤輸入乙個字串(長度<=40個字元),並以字元 '.'結束。

d:刪除乙個字元,命令的方式為:

d a  其中a為被刪除的字元

例如:d s 表示刪除字元 's' ,若字串中有多個 's',則刪除第一次出現的。

如上例中刪除的結果為: 'thi is a book.'

i:插入乙個字元,命令的格式為:

i a1 a2  其中a1表示插入到指定字元前面,a2表示將要插入的字元。

例如:i s d 表示在指定字元 's' 的前面插入字元 'd' ,若原串中有多個 's' ,則插入在最後乙個字元的前面。

如上例中:

原串:'this is a book.'

插入後:'this ids a book.'

r:替換乙個字元,命令格式為:

r a1 a2  其中a1為被替換的字元,a2為替換的字元,若在原串中有多個a1則應全部替換。

例如: 原串: 'this is a book.'

輸入命令:r o e

替換後的字串為:'this is a beek.'

在編輯過程中,若出現被改的字元不存在時,則給出提示資訊"not exist"。

輸入每個測試檔案只包含一組測試資料,每組輸入資料報含兩行:

第一行,輸入乙個字串,表示原串;

第二行,輸入乙個字串,表示命令。

輸出對於每組輸入資料,輸出編輯後的字串,如果被改的字元不存在,則輸出"not exist"(引號不輸出)。

輸入樣例 1

this is a book.

d s輸出樣例 1

thi is a book.

提示this is a book.

i s d

this ids a book.

this is a book.

r o e

this is a beek.

**noip全國聯賽普及組 2023年noip全國聯賽普及組

#include

using

namespace std;

intmain()

for(i=t;i1;i++

)for

(i=0

;i1;i++)}

if(a==

'i')

for(i=

0;i) cout

'r')

else

continue;}

if(flat==1)

}else

printf

("not exist");

}return0;

}

getline函式的使用

當 cin 讀取資料時,它會傳遞並忽略任何前導白色空格字元(空格、製表符或換行符)。一旦它接觸到第乙個非空格字元即開始閱讀,當它讀取到下乙個空白字元時,它將停止讀取。

可以輸入 「mark」 或 「twain」,但不能輸入 「mark twain」,因為 cin 不能輸入包含嵌入空格的字串。

為了解決這個問題,可以使用乙個叫做 getline 的 c++ 函式。此函式可讀取整行,包括前導和嵌入的空格,並將其儲存在字串物件中。

getline 函式如下所示:

getline(cin, inputline);

其中 cin 是正在讀取的輸入流,而 inputline 是接收輸入字串的 string 變數的名稱。

字串操作(替換,擷取,插入)

1.在 main 方法中從控制台輸入乙個字串,然後將字串中所有的 替換成 使用indexof找到要替換的,用replace來將其替換成,如下。static void main string args console.writeline 替換後的字串為 str console.readkey 2.在 ...

字串空格替換或刪除

1.將乙個字串裡面的空格替換成 20,不考慮字元陣列大小溢位,不得使用庫函式 2.將乙個字串裡面的乙個或多個空格替換成乙個空格 這兩道題都是關於字串替換,不同的是第一道題是將乙個空格替換為3個字元 20,當然這裡任意3個字元都可以,而且只要保證陣列大小足夠大,乙個空格替換成多個也無所謂,本質上是將乙...

Sed替換刪除新增字串

替換當前目錄下所有文字檔案中,hello為world。i就地修改 sed i s hello world txt 替換包含hello的文字為hi,r遞迴,l列出檔案目錄 sed i s hello hi g grep hello rl 刪除包含insert的行 sed i insert d test...