// 去除重复的字符:新建另一字符串,把原字符串的字符一个一个往新字符串
// 中放,但在放的同时判断该字符在新串中是否已存在,如果已存在则丢弃该
// 字符,否则则放入新串中
#include<stdio.h>
#include <string.h>
int main()
{
char str1[100], str2[100];
int i, j, n; // i,j为循环变量,n为字符串2中的字符个数
printf ("Enter string:");
gets ( str1 ); // 读入字符串
n = 0; // 初始状态,新字符串的字符个数为 0
// 遍历待去重字符串的每个字符
for ( i=0; str1[i]!='\0'; i++)
{
// 判断第i个字符在新串中是否已存在
for (j=0;j<n;j++)
if(str1[i]==str2[j]) // 如果存在则强制退出循环,此时 j < n
break;
// 当 j==n时,意味着上面的循环完整执行而没有中途退出;
// 这表明第i个字符在新串中存在
if ( j == n ) /* 不重复,则拷贝 */
str2 [ n++ ] = str1 [ i ];
}
// 一定别忘记在新串的末尾加上结束标记 \0
str2[n]='\0';
printf("Result:");
puts ( str2 );
}