/*
在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
思路:从第一个字符开始,统计个数,个数>1,不用统计这个字符了,接着统计后面
*/解法1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i,j;
char buf[50]={0};
int newbuf[100]={0};
printf("请输入一个字符串!\n");
scanf("%s",buf);
for(i=0;i<strlen(buf);i++)
{
newbuf[buf[i]]++;
}
for(j=0;j<strlen(buf);j++)
{
if(newbuf[buf[j]]==1)
{
printf("%c\n",buf[j]);
break;
}
}
return 0;
}
================================================
/*在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
思路:从第一个字符开始,统计个数,个数>1,不用统计这个字符了,接着统计后面
*/
//解法2
#include <stdio.h>
#include <string.h>
int main ()
{
int i,j;
//使用标志位
int flag=0;
char buf[30]={0};
printf("请输入一个字符串!\n");
scanf("%s",buf);
//统计只出现一次的字符
for(i=0;i<strlen(buf);i++)
{
flag=0;
for (j=i+1;j<strlen(buf);j++)
{
if (buf[i]==buf[j])//后面字符有重复的
{
flag=1;//标志位置为1
}
}
//装模做样判断flag的值
if(flag==0)
{
printf("恭喜,找到第一个只出现的字符是:%c 下标是%d\n",buf[i],i);
break;
}
}
}
均有buf待修正
终端结果如下