用c++写在字符串中删除某个字符,要求使用字符数组
时间: 2024-05-08 12:14:44 浏览: 137
好的,可以帮您解决这个问题。下面是使用字符数组在字符串中删除某个字符的示例代码:
```c
#include <stdio.h>
#include <string.h>
void remove_char(char *str, char c) {
int i, j;
for (i = 0, j = 0; str[i] != '\0'; 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);
remove_char(str, c);
printf("删除后的字符串为: %s\n", str);
return 0;
}
```
这个程序会先让用户输入一个字符串和要删除的字符,然后调用 `remove_char` 函数来删除字符串中所有出现的该字符,最后输出删除后的结果。函数的实现是,设两个指针 i 和 j,i 从左到右扫描字符串,如果碰到要删除的字符就跳过,否则将其存到 j 指向的位置,并将 j 向右移动一位,最后在 j 的位置上加上字符串结束符号。这样,就可以在原来的字符串上进行修改,而不需要额外地分配内存。
相关问题
c++数组字符串中找字符串
在C++中,可以使用字符串的find函数来在数组字符串中查找子字符串。find函数的用法如下:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
std::string subStr = "world";
size_t found = str.find(subStr);
if (found != std::string::npos) {
std::cout << "子字符串在数组字符串中的位置:" << found << std::endl;
} else {
std::cout << "未找到子字符串" << std::endl;
}
return 0;
}
```
在上述代码中,我们定义了一个字符串`str`和一个子字符串`subStr`,然后使用`find`函数在`str`中查找`subStr`。如果找到了子字符串,`find`函数会返回子字符串在数组字符串中的位置;如果未找到,`find`函数会返回`std::string::npos`。
c++ 数组转字符串
在C++中,可以使用以下方法将字符数组转换为字符串:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
char a[10] = "aaaabbbba";
string s(a); // 将字符数组a转换为字符串s
cout << s << endl;
return 0;
}
```
输出结果为:
```
aaaabbbba
```
阅读全文