【C语言】在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出’b’

//在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出’b’
#include <stdio.h>
#include <memory.h>
char OneTime(char * str)
{
	int data[256];
	char *p = str;
	if (*p == '\0')
		return '\0';
	memset(data, 0, sizeof(data));
	while (*p )
	{
		data[*p++]++;              //把每种字符个数各自统计起来
	}
	while (*str)
	{
		if (data[*str] == 1)       //检测该字符是否只出现一次,是则返回
			return *str;
		str++;
	}
	return '\0';
}
int main()
{
	char *p = "abcdabcdefjef";   //j
	printf("单独出现的字符为:%c\n", OneTime(p));
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-17 09:36:47

【C语言】在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出’b’的相关文章

【c语言】第一个只出现一次的字符题目:在字符串中找出第一个只出现一次的字符

// 第一个只出现一次的字符题目:在字符串中找出第一个只出现一次的字符. // 如输入"abaccdeff",则输出'b'. #include <stdio.h> #include <string.h> char find_one(char *str) { int a[256]; int len = strlen(str); int i = 0; memset(a, 0, sizeof(a)); for (i = 0; i<len; i++) { a[st

在字符串中找出第一个只出现一次的字符

题目: 在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",则输出'b'. 题目分析: 对于在字符串中找出第一个出现一次的字符,联系ASCII码表,能够得到有256中不同的字符,可以利用字符的编码,将每个字符的编码作为数组的下表,建立一个有256个元素的数组arr[256],将数组中的每一个元素对应统计字符的个数,从字符串的第一个字符进行遍历,遇到一个字符给对应的数组元素加1,当数组中的其中一个元素变到2,则输出这个元素所对应的数组下表,即就是这个字符的ASCII码.

在字符串中找出第一个只出现一次的字符。 如输入“abaccdeff”,则输出&#39;b&#39;。

在字符串中找出第一个只出现一次的字符. 如输入"abaccdeff",则输出'b'. 这个题加一些要求维度只能为n 代码如下: #include <stdio.h> #include <assert.h> char FLetter(char arry[],int len) {              int letterNumber[256] = {0};              int i = 0;              char *ch  = arr

【C语言【面试题】【笔试题】题目:在字符串中找出第一个只出现一次的字符。

#include<stdio.h> int main() { char *p="abacceeff"; char arr[256]={0}; char *ptr=p; while(*p) { arr[*p]++; p++; } p=ptr; while(*p) { if(arr[*p]==1) printf("%c\n",*p); p++; } return 0; }

在字符串中找出第一个只出现一次的字符。

#include <stdio.h> #include <string.h> char found(char str[]) { int i=0; int j=0; int count; int len=strlen(str); for(i=0;i<len;i++) { count=0;       //每次执行外层循环时count都要置0 for(j=len-1;j>=0;j--) { if(str[i]==str[j]) { count++; } if(count==

在字符串中找出第一个只出现一次的字符串,如输入&quot;abaccdeff&quot;,输出&#39;b&#39;

在字符串中找出第一个只出现一次的字符串,如输入"abaccdeff",输出'b' 1 char firstNotRepeatingChar(char *str) 2 { 3 /* hash表存储 每个可能出现的字符作为索引值 数组内容即为出现的次数 */ 4 char ret = '\0'; 5 // 1.建立hashtable 6 const int size = 256; 7 // 全部初始化为0 8 int hashtable[size] = {0}; 9 char *hashK

面试题之在字符串中查找出第一个只出现一次的字符的位置

样例:比如“abcdabc”,第一个只出现一次的字符为d,位置为3 解决方案1:O(n*n)的复杂度 遍历字符串中的每个字符,然后用该字符在字符串中进行查找,如果没有找到和当前字符相同的字符.则当前字符为第一个 只出现一次的字符. 解决方案2:O(n)的复杂度 采取空间换时间的策略 开一个辅助数组,做哈希映射 第一次扫描时,更新在辅助数组中当前字符出现的次数. hash查找的时间复杂度为o(1). 第二次扫描时,在辅助数组中通过查辅助数组看当前字符是否只出现了一次,从头到尾的顺序遍历保证了“第一

在字符串中,寻找第一个只出现一次的字符

在字符串中,寻找第一个只出现一次的字符,如str="abddggdbacdd", 结果是c 三种方法: 1. 使用字符字典数组,每个元素是一个结构体,第一个字段记录字符出现的次数,第二个字段记录该字符在字符串中第一次出现的位置, 先遍历一遍字符串,对字符字典数组赋值,然后遍历一遍字符字典数组,找到第一个字段为1,且位置最小的字符即为需要寻找的字符.如下: struct node{ int num; //出现次数 int index; //首次出现的位置 }; char str[1000

C语言:从p所指字符串中找出ASCII码最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

//fun函数:从p所指字符串中找出ASCII码最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动. 1 #include <stdio.h> 2 void fun( char *p ) 3 { char max,*q; int i=0; 4 max=p[i]; 5 while( p[i]!=0 ) 6 { if( max<p[i] ) 7 { max=p[i]; 8 /**********found**********/ 9 q = p + i;//先找到最大值,记录最