本题要求实现一个删除字符串中的指定字符的简单函数。 函数接口定义: void delchar( char *str, char c ); 其中char *str是传入的字符串,c是待删除的字符。函数delchar的功能是将字符串str中出现的所有c字符删除。 裁判测试程序样例: #include <stdio.h> #define MAXN 20 void delchar( char *str, char c ); void ReadString( char s[] ); /* 由裁判实现,略去不表 */ int main() { char str[MAXN], c; scanf("%c\n", &c); ReadString(str); delchar(str, c); printf("%s\n", str); return 0; } void delchar( char *str, char c ) { int i,j; int m=strlen(str); for(i=j=0;i<m;i++) if(str[i]!=c) str[j++]=str[i]; str[j]='\0'; }解释在题目要求下这段代码
时间: 2024-03-04 15:51:33 浏览: 38
这段代码实现了一个删除字符串中指定字符的函数delchar,其接受两个参数:char *str表示传入的字符串,char c表示待删除的字符。函数的实现过程如下:
1. 获取字符串str的长度m,用于循环遍历字符串。
2. 通过两个指针i、j来遍历字符串str,其中i用于遍历每个字符,j用于记录被保留的字符的位置。
3. 在遍历过程中,如果当前字符不等于待删除的字符c,则将其保存到j位置,并且j自增1。
4. 遍历结束后,将字符串str的末尾设置为'\0',表示字符串的结束。
5. 函数执行完毕,字符串中所有出现的待删除字符c都被删除了。
需要注意的是,这段代码中的字符串处理函数strlen()和strcpy()需要引入string.h头文件才能使用。
相关问题
用C语言编写一函数删除字符串中指定的字符,函数的原型为: void strdelch( char *str, char c ),并制作流程
好的,下面是实现函数的代码和流程图。
```c
#include <stdio.h>
#include <string.h>
void strdelch(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';
}
int main() {
char str[100];
char c;
printf("请输入一个字符串:");
scanf("%s", str);
getchar(); // 读取多余的回车符
printf("请输入要删除的字符:");
scanf("%c", &c);
strdelch(str, c);
printf("删除指定字符后的字符串为:%s\n", str);
return 0;
}
```
流程图如下:
![strdelch函数流程图](https://i.imgur.com/3rS6Q0u.png)
希望对您有所帮助!
c语言编写函数,从给定字符串中删除指定的字符。 函数接口定义: void del_char(char str[],char ch); 裁判测试程序样例: #include <stdio.h> #include <string.h> void del_char(char str[],char ch); int main() { char c,s[81]; gets(s); c=getchar(); del_char(s,c); puts(s); } /* 请在这里填写答案 */ 输入样例: student t 输出样例: suden
以下是函数实现代码:
```c
void del_char(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'; // 字符串结尾
}
```
函数的思路是遍历给定字符串 `str`,将不等于指定字符 `ch` 的字符放到字符串的前面,构成一个新的字符串。用两个指针 `i` 和 `j` 分别指向原字符串和新字符串。当 `str[i]` 不等于 `ch` 时,将其复制到 `str[j]` 中,并将 `j` 后移一位,否则跳过该字符。最后将新字符串的结尾置为 `\0`,即可得到删除指定字符后的字符串。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.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)
![](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)
![](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)