编写一个函数,删除给定字符串中的指定宇符,如给定字符串“Chinese”,删除指定字符'e',字符串变为“chins”,主函数完成给定字符串和指定字符的输入,调用所编函数,输出处理后的字符串。
时间: 2024-03-19 10:43:17 浏览: 13
好的,以下是符合你要求的 C++ 代码:
```c++
#include <iostream>
#include <string>
using namespace std;
string deleteChar(string str, char ch) {
string res = "";
for (int i = 0; i < str.length(); i++) {
if (str[i] != ch) {
res += str[i];
}
}
return res;
}
int main() {
string str;
char ch;
cout << "请输入一个字符串:";
cin >> str;
cout << "请输入要删除的字符:";
cin >> ch;
string res = deleteChar(str, ch);
cout << "处理后的字符串为:" << res << endl;
return 0;
}
```
这个程序中,我们定义了一个 `deleteChar` 函数,它的输入参数是一个字符串和一个字符,输出结果也是一个字符串。函数内部使用了一个 for 循环和一个 if 判断来遍历输入字符串中的每一个字符,如果当前字符不等于输入的指定字符,则将其加入到输出字符串中。最后,我们在主函数中输入要处理的字符串和要删除的字符,调用 `deleteChar` 函数,输出处理后的结果。
相关问题
c语言 编写一个函数,删除给定字符串中的指定宇符,如给定字符串“Chinese”,删除指定字符'e',字符串变为“chins”,主函数完成给定字符串和指定字符的输入,调用所编函数,输出处理后的字符串。
可以编写一个名为 `deleteChar` 的函数,接收两个参数:字符串的指针和待删除的字符。函数实现如下:
```c
#include <stdio.h>
#include <string.h>
void deleteChar(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'; // 将新字符串的结尾标记设为'\0'
}
int main() {
char str[100], c;
printf("请输入字符串:");
scanf("%s", str);
printf("请输入要删除的字符:");
scanf(" %c", &c);
deleteChar(str, c);
printf("处理后的字符串为:%s\n", str);
return 0;
}
```
这里使用了两个指针 i 和 j,遍历原始字符串中的所有字符,如果当前字符不是待删除的字符,则将其复制到新字符串中,并将 j 指针后移一位。最后,将新字符串的结尾标记设为 '\0'。
在主函数中,先读入字符串和待删除的字符,然后调用 `deleteChar` 函数进行处理,最后输出处理后的字符串。注意,在读入待删除的字符时,需要在前面加上一个空格,以避免读入上一次输入时留下的回车符。
给定一个字符串列表,其中大部分是中文词语。去掉其中不是中文词语的词
可以使用Python中的中文分词库jieba来实现。首先需要下载jieba库,然后使用以下代码:
```python
import jieba
def filter_chinese_word(words):
new_words = []
for word in words:
is_chinese = True
for char in word:
if not ('\u4e00' <= char <= '\u9fa5'):
is_chinese = False
break
if is_chinese:
new_words.append(word)
return new_words
# 示例
words = ['我', '爱', 'Python', '编程']
words = filter_chinese_word(words)
print(words)
```
这里的`filter_chinese_word`函数会遍历输入的字符串列表中的每一个字符串,判断其中是否只包含中文字符,如果是则将其添加到新的列表中。最后返回新的列表即为去除非中文词语后的结果。