輸入含空格字符串(≥10 字符)與刪除位置 n,刪除第 n 個字符後輸出。例:"jiangsu123", n=5 → "jiansu123"(刪除 'g')。
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char s1[200], s2[200];
int n;
cin.getline(s1, 200); // 讀取整行含空格
cin >> n; // 讀取位置
int len = strlen(s1);
if (n >= 1 && n <= len) {
// 從 n 開始向前覆蓋(0-based 索引 n-1 被跳過)
for (int i = n; i < len; ++i) {
s1[i - 1] = s1[i];
}
s1[len - 1] = '\0'; // 新結束符
}
cout << s1 << endl;
return 0;
}
cin.getline 讀取含空格行,cin >> n 讀取整數。n 個字符(1-based),即將索引 n 及之後的字符前移一位覆蓋索引 n-1。i < len,最終在 len-1 處寫入 '\0' 截斷。if (n >= 1 && n <= len)。string s; getline(cin, s); int n; cin >> n;
if (n >= 1 && n <= s.length()) s.erase(n - 1, 1);
cout << s << endl;
erase(pos, count) 直接刪除 count 個字符,極其簡潔。