题目分析:
1.在字符串中遍历,找到目标字符后,用后一个字符将它替代,并且后面每一个字符都向前移动一个位置,这样循环一次就删掉了字符串中第一个目标字符
如目标字符 s(想要删除的字符)a s d f h g k s r y
循环一次后 ,变为 a d f g k s r y
再循环一次 , 变为 a d f g k r y
完成
2.循环次数即字符串中目标字符的个数(用循环计数器来统计目标字符个数)
代码实现:
#include <stdio.h> #include <string.h> void fun(char str[], int ch) { int len = strlen(str); int i = 0; int j = 0; int tmp = 0; int count = 0; for (i = 0; i < len; i++) { if (str[i] == ch) { count++; } } for (j = 0; j < count; j++) { for (i = 0; i < len; i++) { if (str[i] == ch) { tmp = str[i]; str[i] = str[i + 1]; str[i + 1] = tmp; } } } } int main() { static char str[] = "turboccandborlandc++"; char ch = 0; printf("原始字符串:%s\n",str); printf("输入一个字符:"); scanf("%c",&ch); fun(str, ch); printf("变化后的字符串:%s\n",str); return 0; }
运行结果: