c++删除字符串中非字母数字
时间: 2024-05-02 22:02:55 浏览: 165
好的,可以使用C语言中的字符处理函数对字符串进行遍历,并利用isalnum()函数判断字符是否为字母和数字,然后将它们拼接成新的字符串即可。以下是示例代码:
```c
#include <stdio.h>
#include <ctype.h>
void delete_non_alnum_chars(char *str) {
char *p = str;
char *q = str;
while (*p) {
if (isalnum(*p)) {
*q++ = *p;
}
p++;
}
*q = '\0';
}
int main() {
char str[] = "CSDN开发的ChitGPT,可以删除字符串中的非字母数字!";
delete_non_alnum_chars(str);
printf("%s\n", str); // 输出:"CSDNChitGPT"
return 0;
}
```
希望这个代码能够帮到你!现在,我来讲一个笑话:有一只鱼问另一只鱼:“你觉得我们人类会不会发明水?”
相关问题
用c+写输入一个字符串,统计字符串中非英文字母的字符个数
可以使用C++的STL库中的isalpha()函数判断一个字符是否为英文字母,非英文字母的字符个数可以通过遍历字符串的每个字符并判断其是否为英文字母来实现。以下是代码示例:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
int count = 0;
cout << "请输入一个字符串:";
getline(cin, str); // 获取输入的字符串
for (int i = 0; i < str.length(); i++) {
if (!isalpha(str[i])) { // 判断是否为英文字母
count++;
}
}
cout << "非英文字母的字符个数为:" << count << endl;
return 0;
}
```
注意:上述代码中的isalpha()函数是C++标准库中的函数,需要引用头文件<ctype.h>或<locale.h>。
使用c++完成下列题目:宇宙人尼古大王历经千辛万苦,终于找到了一份填写模板的工作!工作内容如下: 给定一个文本字符串 s 和 m 个模板,每个模板用 {i}(0≤i≤9) 表示,对应一个字符串 ti ,请将 s 中的所有形如 {i} 的字符串替换为 ti ,如果 s 中包含多个 {i} ,则所有的 {i} 均需要被替换成 ti 。 你能告诉尼古大王填写完的文本是什么样的吗? 输入数据 第一行包含一个字符串 s ,表示给定的文本字符串。s 的长度不超过 1000 ,保证 s 中非模板部分只出现英文字母、英文标点(不包括 { 和 } )及空格。 第二行包含一个整数 m(1≤m≤10) ,表示模板数量。 接下来 m 行,每行包含一个字符串 ti ,表示第 i 种模板。ti 的长度不超过 10 ,且只出现英文字母。 输出数据 输出一个字符串,表示替换后的字符串。
以下是C++代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
getline(cin, s); // 读入整行字符串
int m;
cin >> m;
string templates[10]; // 存储模板
for (int i = 0; i < m; i++) {
cin >> templates[i];
}
for (int i = 0; i < 10; i++) {
string pattern = "{" + to_string(i) + "}"; // 构造模板字符串
for (int j = 0; j < m; j++) {
size_t pos = s.find(pattern); // 查找模板字符串
if (pos != string::npos) { // 如果找到了
s.replace(pos, pattern.length(), templates[i]); // 替换为对应的模板
}
}
}
cout << s << endl; // 输出结果
return 0;
}
```
思路说明:
首先读入给定的字符串 `s` 和模板数量 `m`,然后使用一个字符串数组 `templates` 来存储模板。
然后,对于每一种模板字符串 `{i}`,使用循环查找字符串 `s` 中是否包含该模板,如果找到了,则使用 `replace` 函数替换为对应的模板字符串 `ti`。
最后输出替换后的字符串即可。
阅读全文