c++写输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个字符串 str,再输入一个字符 c,将字符串 str 中出现的所有字符 c 删除。 要求定义并调用函数delchar(str,c), 它的功能是将字符串 str 中出现的所有 c 字符删除,函数形参str的类型是字符指针,形参c的类型是char,函数类型是void。
时间: 2023-06-08 15:04:32 浏览: 181
好的,我明白了。这是一个关于编程的问题。
首先,我们需要定义函数 delchar,它的形参是一个字符指针 str 和一个字符 c,函数类型是 void。函数中需要遍历字符串 str,若当前字符等于 c,则删除该字符。
下面是 delchar 函数的代码实现:
```
void delchar(char* str, char c){
int len = strlen(str); // 获取字符串长度
int i, j;
for(i = j = 0; i < len; i++){
if(str[i] != c){ // 如果当前字符不是 c,则保留该字符
str[j++] = str[i];
}
}
str[j] = '\0'; // 将字符串末尾置为 '\0'
}
```
接下来,在主函数中,我们需要读入 repeat,然后再读入 repeat 组数据,每组数据包括字符串 str 和字符 c。对于每组数据,调用函数 delchar 将字符串 str 中的所有字符 c 删除,并输出删除后的字符串。
下面是主函数的代码实现:
```
int main(){
int repeat;
scanf("%d", &repeat); // 读入 repeat
while(repeat--){
char str[1005], c;
scanf("%s %c", str, &c); // 读入字符串 str 和字符 c
delchar(str, c); // 调用函数 delchar 删除字符 c
printf("%s\n", str); // 输出删除后的字符串
}
return 0;
}
```
这样就完成了题目要求的所有操作。
阅读全文