题目描述
输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。
输入描述:
测试数据有多组,每组输入字符串s和字符c。
输出描述:
对于每组输入,输出去除c字符后的结果。
- 示例1
- 输入
heallo
a
- 输出
hello
- 输入
#include <iostream>
#include <fstream>
#include <string>
#include <ostream>
#include <iterator>
#include <vector>
#include <algorithm>
#include <map>
#include <queue>
#include <unordered_set>
#include "cstring"
#define N 1001
using namespace std;
int getStringLength(const char array[]) {
int length = 0;
if (array == nullptr) {
return length;
}
while (array[length] != '\0') {
length++;
}
return length;
}
/**
* 键盘输入一行数据
* @return
*/
char *getLineMessage() {
// 预先准备的大小
int preSize = 2;
int len = preSize;
int totalSize = preSize;
char *line = static_cast<char *>(malloc(preSize * sizeof(char))), *str = line;
int c;
// 申请内存失败
if (line == nullptr) {
return nullptr;
}
for (;;) {
c = fgetc(stdin);
// 输入是终止
if (c == EOF) {
break;
}
//判断是否已经用尽空间
if (--len == 0) {
len = totalSize;
totalSize = totalSize * 2;
char *newLine = static_cast<char *>(realloc(str, totalSize));
if (newLine == nullptr) {
free(str);
return nullptr;
}
// 指针后移
line = newLine + (line - str);
str = newLine;
}
if ('\n' == (*line++ = c)) {
break;
}
}
*(--line) = '\0';
return str;
}
int main() {
char *message = getLineMessage();
char target;
cin >> target;
int length = strlen(message);
int j = 0;
for (int i = 0; i < length; i++) {
if (message[i] != target) {
message[j++] = message[i];
}
}
message[j] = '\0';
cout << message << endl;
return 0;
// nwlrmqhcdarzowkkyhiddqscdxrjmowfrxsjyldefsarcynecdyggxxpklorellnmpapqfwkhopkmcoqhnwnkuewhsqmg
// nwlrmqhcdarzowkkyhiddqscdxrjmowfrxsjyldefsarcynecdyggxxpklorellnmpapqfwkhopkmcoqhnwnkuewhsqmg
}