用c++写一个删除字符串
时间: 2024-05-12 16:15:23 浏览: 17
以下是一个简单的 C++ 程序,可以删除字符串中指定位置的字符:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
int pos;
cout << "请输入一个字符串:";
cin >> s;
cout << "请输入要删除的字符的位置:";
cin >> pos;
s.erase(pos-1, 1);
cout << "删除后的字符串为:" << s << endl;
return 0;
}
```
该程序首先从标准输入读入一个字符串,然后读入要删除的字符的位置,最后使用 string 类的 erase 函数删除该位置上的字符,并打印出删除后的字符串。需要注意的是,string 类的索引从 0 开始,而输入的位置是从 1 开始的,所以在 erase 函数中需要将位置减 1。
相关问题
用c++写一个字符串去重
可以使用哈希表来实现字符串去重,具体的思路是遍历字符串的每个字符,将每个字符都存入哈希表中,如果发现哈希表中已经含有该字符,则说明该字符重复,可以直接将其删除。最后再将哈希表中的字符重组成一个新的字符串即可。
下面是用 C 语言实现字符串去重的代码示例:
```c
#include <stdio.h>
#include <string.h>
#define HASH_SIZE 256
void removeDuplicates(char* str) {
int i, j;
int hash[HASH_SIZE] = {0};
// 遍历字符串
for (i = j = 0; i < strlen(str); i++) {
// 判断当前字符是否已经存在于哈希表中
if (!hash[str[i]]) {
hash[str[i]] = 1; // 如果不存在,标记为出现过
str[j++] = str[i]; // 将当前字符添加到结果字符串中
}
}
str[j] = '\0'; // 添加字符串结尾标记
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
// 去重操作
removeDuplicates(str);
printf("去重后的字符串为:%s", str);
return 0;
}
```
用c++读取一个字符串到e截至
你可以使用 `cin` 输入流来读取字符串,并使用字符数组来存储读取的字符串。代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
char str[100]; // 定义一个字符数组,用来存储字符串
cin.getline(str, 100, 'e'); // 读取字符串,遇到字符 'e' 结束
cout << "读取到的字符串为:" << str << endl;
return 0;
}
```
在上面的代码中,我们定义了一个长度为 100 的字符数组 `str`,用来存储读取的字符串。然后使用 `cin.getline()` 函数来从标准输入读取字符串,其中第一个参数是目标字符数组的地址,第二个参数是数组的最大长度,第三个参数是指定读取字符串的结束标志,也就是遇到哪个字符就停止读取。在这个例子中,我们指定了字符 'e' 作为结束标志。
最后,我们将读取到的字符串输出到控制台上。
需要注意的是,`cin.getline()` 函数在读取字符串时会自动将结束标志字符从输入流中删除,不会将其作为字符串的一部分。