今天做了一道简单的笔试题,用来练练手,感觉也不是太难,在学好C语言的基础上稍微思考调试一下就实现了功能。
例题:在一个字符串中找到第一个只出现一次的字符,如输入abac,则输出b。(笔试题)
我想了两个方法,一个是将每个字符出现的次数求出后,再在所有的次数中找到一个最小的将之输出。另一个方法是从第一个数开始找到第一个与所有字符都不一样的那个字符然后将之输出。
/*********************************************************************
File Name:
Author: xxx date:2016 11 23
Description: 在一个字符串中找到第一个只出现一次的字符,如
输入abac,则输出b。(笔试题)
Fuction List:
********************************************************************/
#include<stdio.h>
#define N 10
int main()
{
char str[N];
int i;
int j;
printf("please input:\n");
scanf("%s",str);
for (i = 0; i < N; i++) //先取一位str【i】 在字符串中寻找是否有与之相同的字符
{
int flag = 1;
char temp = str[i];
for (j = 0; j < N; j++) // 此处j必须从0开始遍历
{
if(i == j)
{
continue;
}
if(temp == str[j]) //如果出现与str【i】相同的字符 则跳出循环
{
flag = 0;
break;
}
}
if(flag) //输出第一个跳出循环的字符
{
printf("%c",str[i]);
break;
}
}
}