3请编写 一个函数,能够实现删除字符串中指定的字符。函数原型如下: char* DeleteChar(char* str, char ch),其功能是把str所指向的字符串中的所包含ch字符删除,然后返回删除后的 123. 字符串。要求:在主函数中进行输入和输出。 输入说明: 输入占两行,第一行为待删除的字符串,第二行为需要删除的字符。 输出说明: 输出占一行, 即删除之后的字符串。
时间: 2024-03-20 12:40:30 浏览: 48
以下是实现题目要求的 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* DeleteChar(char*str,char ch),其功能是把str所指向的字符串中的所包含ch字符删除,然后返回删除后的字符串。要求:在主函数中进行输入和输出。输入说明: 输入占两行,第一行为待删除的字符串,第二行为需要删除的字符。输出说明: 输出占一行,即删除之后的字符串。【输入样例】 J#udge #not #fro#m a#ppear#anc#es # 答题详情 【输出样例】 联想应 Judge not from appearances.
以下是代码实现:
```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.
```
用c语言补充添加字符删除函数,能够在字符串中找到并删除指定的字符,要求函数原型为: void delete_c(char*str,char c);
### 回答1:
下面是一个简单的用C语言实现的删除指定字符的函数:
```
void delete_c(char *str, char c) {
int i, j;
for (i = j = 0; str[i] != '\0'; i++) {
if (str[i] != c) { // 如果当前字符不是要删除的字符
str[j++] = str[i]; // 将当前字符复制到新的字符串中
}
}
str[j] = '\0'; // 将新字符串的结尾标记设置为'\0',表示字符串结束
}
```
这个函数的实现很简单,它遍历整个字符串,将不等于指定字符的字符复制到一个新的字符串中,最后将新字符串的结尾标记设置为'\0',表示字符串结束。这样,原来的字符串就被修改了,不再包含指定字符。
你可以在程序中调用这个函数,例如:
```
char str[] = "hello world";
delete_c(str, 'l');
printf("%s\n", str); // 输出结果为:heo word
```
在这个例子中,我们删除了字符串中的所有'l'字符。
### 回答2:
下面是C语言实现的delete_c函数:
```c
#include <stdio.h>
void delete_c(char *str, char c) {
int i, j;
for (i = j = 0; str[i] != '\0'; i++) {
if (str[i] != c) {
str[j] = str[i];
j++;
}
}
str[j] = '\0';
}
int main() {
char str[100];
char c;
printf("输入一个字符串: ");
scanf("%s", str);
printf("输入要删除的字符: ");
scanf(" %c", &c); // 空格是为了忽略之前输入的换行符
delete_c(str, c);
printf("删除指定字符后的字符串为: %s\n", str);
return 0;
}
```
该函数会在给定的字符串中找到并删除指定的字符。它使用两个指针i和j来遍历字符串,并将不等于指定字符的字符移到前面。最后,在第j个位置添加字符串的结束符'\0'以表示字符串的结束。运行上述程序,您可以输入一个字符串和要删除的字符,然后输出将删除指定字符之后的字符串。
### 回答3:
以下是用C语言编写的补充添加字符删除函数的实现:
```c
#include <stdio.h>
void delete_c(char* str, char c)
{
int i, j;
// 遍历字符串中的每一个字符
for (i = 0, j = 0; str[i] != '\0'; i++) {
// 如果字符不是指定的字符 c,则将其保留在字符串中
if (str[i] != c) {
str[j++] = str[i];
}
}
// 将字符串的最后一个字符设置为 '\0' 以表示字符串的结束
str[j] = '\0';
}
int main()
{
char str[100];
char c;
printf("请输入字符串:");
gets(str);
printf("请输入需要删除的字符:");
scanf("%c", &c);
delete_c(str, c);
printf("删除指定字符后的字符串为:%s\n", str);
return 0;
}
```
在上述代码中,`delete_c`函数的参数为需要进行删除操作的字符串和指定的字符 c。该函数中使用两个变量 i 和 j,其中 i 用于遍历原始字符串中的每一个字符,而 j 则用于存储删除指定字符后的新字符串。
在循环中,如果当前字符不是指定的字符 c,则将其保留在新字符串中,并将 j 的值增加 1。当遇到指定的字符 c 时,将直接跳过该字符,因此相当于删除了该字符。
循环结束后,将新字符串的最后一个字符设置为`\0`,以表示字符串的结束。最后通过主函数中的`printf`函数打印删除指定字符后的字符串。
阅读全文