C++从键盘输入字符串(最多30个),之后再输入单个字符,将字符串s中所有ch字符删除掉,然后输出新的字符串。
时间: 2024-02-09 15:10:32 浏览: 18
好的,这是一个比较基础的字符串操作问题,我可以帮您解答。
可以使用字符串的erase函数来删除字符,具体步骤如下:
1. 使用cin读入字符串s和字符ch;
2. 使用while循环遍历字符串s,如果找到了字符ch,则使用erase函数删除该字符;
3. 循环结束后,输出修改后的字符串s。
下面是代码实现的示例:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
char ch;
getline(cin, s); // 输入字符串s
cin >> ch; // 输入要删除的字符ch
int i = 0;
while (i < s.size()) {
if (s[i] == ch) {
s.erase(i, 1); // 删除字符ch
} else {
i++;
}
}
cout << s << endl; // 输出修改后的字符串s
return 0;
}
```
需要注意的是,使用getline函数读入字符串时,输入的回车符会被当做字符串的一部分,因此输入字符ch时需要使用cin而不是getline。
相关问题
从键盘输入字符串s(最多30个)和单个字符ch,将字符串s中所有ch字符删除掉,然后输出新的字符串。c++
以下是C++代码实现:
```c++
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
char ch;
getline(cin, s); // 输入字符串s
cin >> ch; // 输入要删除的字符ch
for(int i = 0; i < s.length(); i++)
{
if(s[i] != ch) // 如果当前字符不是要删除的字符ch
{
cout << s[i]; // 输出当前字符
}
}
cout << endl;
return 0;
}
```
首先使用`getline()`函数输入字符串`s`,然后使用`cin`输入要删除的字符`ch`。接着使用一个循环遍历字符串`s`中的每个字符,如果该字符不等于要删除的字符`ch`,则输出该字符。循环结束后,输出一个换行符,程序结束。
C++如何判断单个字符是否在字符串中
可以使用标准库函数 `strchr()` 来判断单个字符是否在字符串中。
`strchr()` 函数的原型如下:
```c
char *strchr(const char *str, int c);
```
其中,第一个参数 `str` 是要查找的字符串;第二个参数 `c` 是要查找的字符。
函数返回值是一个指向第一次出现字符的指针,如果没有找到这个字符,则返回 `NULL`。
因此,我们可以使用以下代码来判断一个字符串是否包含某个字符:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello World";
char ch = 'o';
char *result = strchr(str, ch);
if (result != NULL) {
printf("%c is found in %s\n", ch, str);
} else {
printf("%c is not found in %s\n", ch, str);
}
return 0;
}
```
输出结果为:
```
o is found in Hello World
```