zoukankan      html  css  js  c++  java
  • C语言小程序(五)、数组查询

    随机产生一些字符,然后输入要查找的字符,本想将查找到的字符存储起来,要么初始化一个等大小的数组,要么要先检索出总共查找到多少个元素,再开辟空间存储,但这样相当于搜索了两遍,没有想到更好的方法,只是简单的将找到的字符打印出来。

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define	SIZE	100
    
    int getstr(char *str, int max)
    {
    	int i;
    	srand(time(NULL));
    	for(i=0; i<max-1; i++)
    	{
    		if(rand()%2)
    			str[i] = rand() % 26 +  'A';	//产生在A-Z之间的字符
    		else
    			str[i] = rand() % 26 +  'a';	//产生在a-z之间的字符
    		putchar(str[i]);
    	}
    	str[max-1] = '
    ';
    	putchar('
    ');
    	return 0;
    }
    
    int search(char *str, char ch)				//找出指定的字符并输出
    {
    	//int  pos[SIZE];
    	int count = 0;
    	int i = 0;
    	while(str[i] != '
    ')
    	{
    		if(str[i] == ch)
    		{
    			//pos[count++] = i;
    			printf("str[%d]=%c	",i, ch);
    			if(i%5 == 0)
    				putchar('
    ');
    			count++;
    		}
    		i++;
    	}
    	printf("
    共有%d个%c。
    ",count, ch);
    	return 0;
    }
    
    int main()
    {
    	char str[SIZE];
    	char c;
    	char ch;
    	printf("输入要查找的字符:");
    	scanf("%c",&ch);
    	getstr(str, SIZE);
    	//while((c=getchar())!='
    ' && (c=getchar())!=EOF);
    	search(str,ch);
    	return 0;
    }


  • 相关阅读:
    [BZOJ4553][TJOI2016&HEOI2016]序列
    树套树乱讲的代码
    树套树乱讲
    [Luogu4174][NOI2006]最大获益
    [BZOJ3879]SvT
    [BZOJ3611][HEOI2014]大工程
    [BZOJ1501][NOI2005]智慧珠游戏
    [BZOJ1499][NOI2005]瑰丽华尔兹
    [BZOJ3460] Jc的宿舍
    [HDU4812]D Tree
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218668.html
Copyright © 2011-2022 走看看