本题要求实现一个删除字符串中的指定字符的简单函数。 函数接口定义: 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; } /* 你的代码将被嵌在这里 */ 输入样例: a happy new year 输出样例: hppy new yer
时间: 2024-01-28 21:05:36 浏览: 51
有一个字符串,内有若干个字符,今输入一个字符,要求程序将字符串中该字符删去。用外部函数实现。
下面是删除字符串中指定字符的函数delchar的实现:
```c
void delchar(char *str, char c) {
if (str == NULL) return;
int i, j;
for (i = 0, j = 0; str[i] != '\0'; i++) {
if (str[i] != c) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
```
该函数使用双指针的方法,i指向源字符串的当前字符,j指向目标字符串的当前位置。当源字符串的当前字符不等于待删除字符时,将其拷贝到目标字符串中。最后,将目标字符串的末尾置为'\0',表示字符串结束。
阅读全文