c++字符串删除
时间: 2023-08-20 15:14:11 浏览: 63
在C++中,可以使用`std::string`类来处理字符串。要删除一个字符串中的字符,可以使用`erase()`函数。以下是一个简单的示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
char ch;
cout << "Enter a string: ";
getline(cin, str);
cout << "Enter the character to delete: ";
cin >> ch;
str.erase(remove(str.begin(), str.end(), ch), str.end()); // 删除所有与ch相等的字符
cout << "Resultant string: " << str;
return 0;
}
```
该程序从标准输入中读取一个字符串和一个字符,然后使用`erase()`函数和`remove()`算法来删除该字符。最后,程序输出结果字符串。注意,这里使用了`getline()`函数来读取字符串,它可以正确读取包含空格的字符串。
相关问题
c++字符串删除指定字符
你可以使用C语言中的字符串操作函数来删除指定字符。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
void removeChar(char *str, char c) {
int len = strlen(str);
int i, j;
for (i = 0, j = 0; i < len; i++) {
if (str[i] != c) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[100];
char c;
printf("请输入字符串: ");
scanf("%s", str);
printf("请输入要删除的字符: ");
scanf(" %c", &c);
removeChar(str, c);
printf("删除指定字符后的字符串: %s\n", str);
return 0;
}
```
在这个示例中,我们首先定义了一个 `removeChar` 函数,它接受一个字符串和一个字符作为参数。该函数使用两个指针 `i` 和 `j` 遍历字符串,并将不等于指定字符的字符复制到新的位置。最后,将新位置的末尾设置为字符串结束符 `\0`,以确保字符串的正确结束。
在 `main` 函数中,我们从用户输入中获取字符串和要删除的字符,并调用 `removeChar` 函数来删除指定的字符。最后,打印删除指定字符后的字符串。
请注意,这段代码假设输入的字符串长度不超过100个字符。如有需要,你可以根据实际情况进行修改。
C++字符串删除标点符号
可以使用C语言的字符串处理函数strchr()和strcpy()来删除标点符号。
1. 首先,需要包含头文件<string.h>。
2. 定义一个字符串数组,用于存储待处理的字符串。
3. 使用strchr()函数查找字符串中的标点符号,如果找到了,则将该字符所在位置之后的所有字符向前移动一个位置,即使用strcpy()函数将该位置后面的字符全部向前移动一个位置。
4. 重复步骤3,直到字符串中的所有标点符号都被删除。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100] = "Hello, world! This is a test string.";
char *p;
printf("Original string: %s\n", str);
// 删除字符串中的标点符号
while ((p = strchr(str, ',')) != NULL || (p = strchr(str, '.')) != NULL || (p = strchr(str, '!')) != NULL || (p = strchr(str, '?')) != NULL) {
strcpy(p, p + 1);
}
printf("Processed string: %s\n", str);
return 0;
}
```
输出结果为:
```
Original string: Hello, world! This is a test string.
Processed string: Hello world This is a test string
```
可以看到,原始字符串中的所有标点符号都被删除了。