zoukankan      html  css  js  c++  java
  • 寻找字符串中只出现一次的第一个字符

    //描述:  找出字符串中第一个只出现一次的字符
    //详细描述:
    //接口说明
    //原型:
    //bool FindChar(char* pInputString, char* pChar);
    //输入参数:
    //char* pInputString:字符串
    //输出参数(指针指向的内存区域保证有效):
    //char* pChar:第一个只出现一次的字符
    //如果无此字符 请输出'.' 
    //知识点:  字符串,循环  
    //题目来源:  内部整理  
    //练习阶段:  初级  
    //运行时间限制: 10Sec 
    //内存限制: 128MByte 
    //输入:  
    //输入一串字符 
    //输出:  
    //输出一个字符
    //样例输入: 
    //asdfasdfo                   
    //样例输出: 

    //o

    思路:先统计出字符串中存在字符的出现次数,再重新遍历一次找出第一个只出现一次的字符

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    typedef enum {
    	ERROR=0,
    	SUCCESS=~ERROR
    }boolean;
    
    struct mypnode;
    typedef struct mypnode{
    	char ch;
    	int num;
    	struct mypnode *next;
    }pnode;
    
    boolean findchar(char* str, char* pchar){
    	int str_len=0,k;
    	pnode *phead=NULL, *ptemp;
    
    	str_len = strlen(str);
    	for(k=0; k<str_len; k++){
    		ptemp = phead;
    		while(ptemp){
    			if(ptemp->ch==str[k]){
    				ptemp->num++;
    				break;
    			}
    			ptemp = ptemp->next;
    		}
    		if(ptemp==NULL){
    			if((ptemp=(pnode*)malloc(sizeof(pnode)))==NULL)
    				return ERROR;
    			ptemp->next = phead;
    			ptemp->ch = str[k];
    			ptemp->num = 1;
    			phead = ptemp;
    		}
    	}
    
    	for(k=0; k<str_len; k++){
    		ptemp = phead;
    		while(ptemp){
    			if(ptemp->ch == str[k]){
    				if(ptemp->num==1){
    					*pchar = str[k];
    					return SUCCESS;
    				}
    			}
    			ptemp = ptemp->next;
    		}
    	}
    	return ERROR;
    }
    
    int main(void){
    	char str[100], ch;
    
    	if(gets(str)==NULL)
    		exit(0);
    
    	if(findchar(str, &ch)==ERROR)
    		printf(".");
    	else
    		printf("%c", ch);
    
    	system("pause");
    	return 0;
    }



  • 相关阅读:
    好久不见(致win7)
    mysql update
    两个日期相差的天数
    java 文件指针复位
    shell编程: 获得目录下(包括子目录)所有文件名,路径和文件大小
    爬虫(2)
    爬虫
    eclipse 创建dynamic web project不能运行
    JSP Servlet之间交换数据
    html5视频播放插件
  • 原文地址:https://www.cnblogs.com/xhyzjiji/p/6159388.html
Copyright © 2011-2022 走看看