编写一个函数,删除一个字符串中的指定字符,函数原型: int delStr(char *str,char ch)
时间: 2024-05-16 20:14:51 浏览: 22
以下是删除字符串中指定字符的函数代码:
```c
#include <stdio.h>
int delStr(char *str, char ch) {
int i, j;
for (i = j = 0; str[i] != '\0'; i++) {
if (str[i] != ch) {
str[j++] = str[i];
}
}
str[j] = '\0';
return j;
}
int main() {
char str[] = "hello world";
printf("%d\n", delStr(str, 'l'));
printf("%s\n", str);
return 0;
}
```
函数的主要思路是遍历字符串中的每个字符,如果该字符不是要删除的字符,则将其复制到字符串中的新位置。最终,将新位置后面的字符设置为 null 终止符,以确保字符串的正确结束。在主函数中,我们将字符串“hello world”传递给 delStr 函数,并尝试删除字符“l”。函数将返回删除字符后的字符串长度,并打印删除后的字符串。
相关问题
键盘录入一个srcStr字符串,再录入一个delStr字符串。 删除该字srcStr符串中的所有delStr字符串。
好的,这个问题可以回答。可以使用字符串替换函数,将delStr替换为空字符串即可删除。具体代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char srcStr[100], delStr[100];
printf("请输入源字符串:");
scanf("%s", srcStr);
printf("请输入要删除的字符串:");
scanf("%s", delStr);
int len = strlen(delStr);
char *p = strstr(srcStr, delStr);
while (p != NULL) {
memmove(p, p + len, strlen(p + len) + 1);
p = strstr(srcStr, delStr);
}
printf("删除后的字符串为:%s\n", srcStr);
return ;
}
```
这个程序可以实现删除srcStr字符串中的所有delStr字符串。
用C++编写从一个字符串中删除所有同一个给定字符后得到一个新字符串并输出。 指导:需要将原始字符串存放到一个字符数组 str1 中,将得到的新字符串存放到另外一 个字符数组 str2 中。需要将字符串由 main()函数传递给 delstr()函数,所以采用传地址调用。 在 delstr()函数中采用指针处理字符串,逐个字符判断字符串中的字符是否是待删除的字符, 若不是,将其存放到 str2 中。
好的,我会尽力回答你的问题。
以下是用 C++ 编写从一个字符串中删除所有同一个给定字符后得到一个新字符串的代码:
```cpp
#include <iostream>
using namespace std;
void delstr(char *str1, char c, char *str2)
{
int i = 0;
int j = 0;
while (str1[i] != '\0') // 遍历原始字符串
{
if (str1[i] != c) // 判断字符是否为待删除的字符
{
str2[j] = str1[i]; // 将字符存放到新字符串中
j++;
}
i++;
}
str2[j] = '\0'; // 在新字符串末尾添加结束符
}
int main()
{
char str1[100]; // 原始字符串
char str2[100]; // 新字符串
char c; // 待删除的字符
cout << "请输入原始字符串:";
cin >> str1;
cout << "请输入待删除的字符:";
cin >> c;
delstr(str1, c, str2); // 调用删除函数
cout << "新字符串为:" << str2;
return 0;
}
```
这里定义了一个 `delstr` 函数,该函数接受三个参数:原始字符串 `str1`、待删除的字符 `c` 和新字符串 `str2`。在函数中,使用指针处理字符串,逐个字符判断字符串中的字符是否是待删除的字符,若不是,则将其存放到新字符串中。最后,在新字符串末尾添加结束符。
在 `main` 函数中,首先输入原始字符串和待删除的字符,并调用 `delstr` 函数,将得到的新字符串存放到 `str2` 中,最后输出新字符串。
希望能对你有所帮助!
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)