可以使用循環遍歷字符串,將不需要刪除的字符拷貝到一個新的字符串中,最后將新的字符串賦值給原字符串。
以下是一個示例代碼:
#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
函數來刪除指定字符,并打印刪除后的字符串。