题目分析:
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;
}