字串編輯
描述從鍵盤輸入乙個字串(長度<=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...