题目描述
找出字符串中的第一个不重复字符。
如输入gloogw,输出l。
问题分析
用gets输入字符,通过for循环来达到目的。内层for循环负责与外层for循环进行比较,历遍i后的所有字符,如果出现相等的情况就终止内层循环;当出现不重复的字符时,内存循环已经历遍字符串的所以字符,此时i+j=字符串的总长度+1,输出外层值,终止外层循环,达到题目中“第一个”的目的。
代码实现
#include <stdio.h>
#include<string.h>
int main()
{
char a[20]; //定义字符串
gets(a); //输入字符串
int i, j;
int k = strlen(a); //k为字符串总长度
for (i = 0; i < k; i++)
{
for (j = i+1; j < k; j++) //内循环与外循环一一比较
{
if (a[j] == a[i])
{
break; //出现字符重复情况就终止内循环
}
}
if (j + i == k+1) //无重复情况
{
printf("%c", a[i]);
break; //只输出第一个不重复字符
}
}
return 0;
}