用c++代码写出请编写一个函数,能够实现删除字符串中指定的字符。函数原型如下:char* DeleteChar(char*str,char ch),其功能是把str所指向的字符串中的所包含ch字符删除,然后返回删除后的字符串。要求:在主函数中进行输入和输出。输入说明: 输入占两行,第一行为待删除的字符串,第二行为需要删除的字符。输出说明: 输出占一行,即删除之后的字符串。【输入样例】 J#udge #not #fro#m a#ppear#anc#es # 答题详情 【输出样例】 联想应 Judge not from appearances.
时间: 2024-04-04 15:35:55 浏览: 106
以下是代码实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
char* DeleteChar(char* str, char ch) {
char* p;
char* q;
p = q = str;
while (*q != '\0') {
if (*q != ch) {
*p++ = *q;
}
q++;
}
*p = '\0';
return str;
}
int main() {
char str[1000];
char ch;
cin.getline(str, 1000);
cin >> ch;
cout << DeleteChar(str, ch);
return 0;
}
```
输入样例:
```
J#udge #not #fro#m a#ppear#anc#es #
#
```
输出样例:
```
Judge not from appearances.
```
相关问题
3请编写 一个函数,能够实现删除字符串中指定的字符。函数原型如下: char* DeleteChar(char* str, char ch),其功能是把str所指向的字符串中的所包含ch字符删除,然后返回删除后的 123. 字符串。要求:在主函数中进行输入和输出。 输入说明: 输入占两行,第一行为待删除的字符串,第二行为需要删除的字符。 输出说明: 输出占一行, 即删除之后的字符串。
以下是实现题目要求的 C++ 代码:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
char* DeleteChar(char* str, char ch)
{
int len = strlen(str);
int i, j;
for (i = 0, j = 0; i < len; i++)
{
if (str[i] != ch)
{
str[j++] = str[i];
}
}
str[j] = '\0';
return str;
}
int main()
{
char str[100], ch;
cin.getline(str, 100);
cin >> ch;
DeleteChar(str, ch);
cout << str << endl;
return 0;
}
```
函数 DeleteChar 的实现遍历字符串,如果字符不是待删除的字符,则将其拷贝到结果字符串中。最后将结果字符串末尾置为 '\0',并返回结果字符串。
在主函数中,先输入待删除的字符串,然后输入需要删除的字符。调用 DeleteChar 函数,输出删除之后的字符串即可。
c++编写一个函数: char *ReplaceString(char * str, char * s1, char * s2); 该函数用s2替换str中的s1,函数返回替换后的字符串的指针。
以下是实现该函数的代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
char *ReplaceString(char * str, char * s1, char * s2){
int len1 = strlen(s1);
int len2 = strlen(s2);
char *p = strstr(str, s1);
if(p == NULL){ // 如果找不到s1,则直接返回原字符串
return str;
}
int len = strlen(str) - len1 + len2;
char *newStr = new char[len+1];
memset(newStr, 0, len+1);
strncpy(newStr, str, p-str); // 复制s1前面的字符串
strcat(newStr, s2); // 连接s2
strcat(newStr, p+len1); // 连接s1后面的字符串
return newStr;
}
int main(){
char str[] = "Hello, world!";
char s1[] = "world";
char s2[] = "C++";
char *newStr = ReplaceString(str, s1, s2);
cout << newStr << endl;
delete[] newStr;
return 0;
}
```
该函数使用了 strstr 函数来查找 s1 是否在 str 中出现,如果找到了,则使用 strncpy、strcat 等函数来构造新的字符串,并返回新字符串的指针。如果找不到 s1,则直接返回原字符串。注意,该函数返回的新字符串是在堆上动态分配的,使用完后需要手动释放。
阅读全文