题目要求:
从键盘输入一串字符存储在数组中, 程序实现:删掉该字符串中重复的字符并输出.
例子:
输入字符串 : gololgere
输出字符串 : goler
解题思路:
存储字符串在数组中, 遍历一遍字符数组, 每遍历一个字符就让该字符与后面的字符进行对比判断; 如果该字符与a[i]位置的字符重复, 则将a[i]存储的字符删掉, 即将数组整个往前移一位, 覆盖原本a[i]位置的字符.
代码实现:
#include<stdio.h>
#include <string.h>
int main()
{
char ch[100];
scanf("%s",ch); //输入字符串
for(int j = 0 ; j < strlen(ch) ; j++) //遍历整个字符串,strlen()函数用来计算字符串ch的长度
{
for (int i = j+1; i <= strlen(ch); i++) //每遍历一个字符 , 就与后面的字符进行对比判断
{
if (ch[i]==ch[j]) //碰到重复的字符, 删掉后面重复的字符, 保留前面
{
for (int h = i; h <= strlen(ch); h++) //从重复点开始, 往后的字符都往前移一位
{
ch[h]=ch[h+1];
}
}
}
}
printf("%s",ch); //输出更改后的字符串
}