可以使用循环遍历字符串,将不需要删除的字符拷贝到一个新的字符串中,最后将新的字符串赋值给原字符串。
以下是一个示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void deleteChar(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';
}
int main() {
char str[100];
char ch;
printf("请输入字符串:");
gets(str);
printf("请输入要删除的字符:");
scanf("%c", &ch);
deleteChar(str, ch);
printf("删除后的字符串为:%s\n", str);
return 0;
}
在上述代码中,deleteChar
函数用来删除字符串中的指定字符。str
表示要删除字符的源字符串,ch
表示要删除的字符。函数中使用了两个索引i
和j
,i
用来遍历源字符串中的字符,j
用来保存不需要删除的字符。遍历源字符串时,如果当前字符不等于要删除的字符,则将该字符拷贝到新的字符串中,然后j
自增1。最后将新的字符串末尾添加一个空字符\0
表示字符串的结束。最后在主函数中调用deleteChar
函数来删除指定字符,并打印删除后的字符串。