#include<stdio.h> char firstsingle(char *arr) { char asc[255] = {0}; int i = 0; for(; arr[i] != ‘\0‘; i++) { asc[arr[i]]++; } for(i = 0; arr[i] != ‘\0‘;i++) { if(asc[arr[i]] == 1) { return arr[i]; return ‘\0‘; } } } int main() { char arr[10]; char ret; scanf("%s",&arr); ret = firstsingle(arr); printf("%c\n",ret); return 0; }
在字符串中找出第一个只出现一次的字符,首先字符根据ASCLL变共有256种,则建立一个这么长的字符数组,从前往后检索,遇到就计数,如果是符合条件的firstsingle word 则计数后应该为1.
另外,asc[arr[i]]是将每次输入的字符arr[i]当成ASCII码存储在计算机中。
【笔试题】C语言:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'。
原文:http://10740184.blog.51cto.com/10730184/1708544