习题8-6 删除字符
本题要求实现一个删除字符串中的指定字符的简单函数。
函数接口定义:
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
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码如下
void delchar( char *str, char c ){
int i, j; // 声明两个整数变量i和j,用于循环和索引
for(i = 0; str[i] != 0; i++){ // 遍历字符串str
if(str[i] == c){ // 如果当前字符等于要删除的字符c
for(j = i; str[j] != 0; j++){ // 从当前位置开始,将后面的所有字符向前移动一位
str[j] = str[j + 1]; // 覆盖掉当前位置的字符
}
i--; // 删除了一个字符,所以需要将索引i减一
}
}
}