我是靠谱客的博主 自觉豆芽,最近开发中收集的这篇文章主要介绍字符类题之反射,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述


我们都知道人眼对自然界中的景物有不同的彩色感觉是因为日光(光源)包含有各种波长的可见光,
同时景物又具有不同的反射(或透射)特性的缘故。例如:西红柿具有反射红色光谱成分的特性,
在太阳光照射下其中的红色成分(吸收了其他光谱成分),所以人眼看到的西红柿是红色的。如果
把西红柿放到蓝光下,照射到西红柿上的蓝光被它吸收了,人眼看到的将是黑色的西红柿。


输入

我们在每组测试数据的第一行有一个字符,表示某个景物能够反射的颜色,第二行输入的是一行
字符串(长度不超过1000),表示一组照射到该景物上的光源(长度不超过26)。问,是否有光源
照射到景物上能够显示出景物的颜色,如果有则将每个光源按行输出,没有则输出“No!”。
有多组测试数据,每组测试数据的输出结果用一行空行分割开来。


输出


样例输入

r
ogr bg abc r
e
oga bw

样例输出

ogr
r

分析:
查找有空格字符串中,有某字符的子串,并输出该字串!

AC代码如下:

#include "stdio.h" 
#include "string.h"

int main(int argc, char* argv[]) 
{ 
	char a[1100],b[50]; 
	char c; 	
	int i,j,k,l,ss=0;
	int flag;//标记是否有该字符
	int ff;//标记是否已输出该字符,作用是为了解决一种特例,   r    “asdr sdr r sd”
	while(scanf("%c",&c)!=EOF) 
	{ 	
		getchar(); 	
		gets(a); 	
		ff=0; 	
		if (ss++)     //按要求输出换行 	
		{ 		
			printf("n"); 	
		} 	
		for (i=0;i<(int)strlen(a);i++) 	
		{ 		
			if (i==0) 		
			{ 	
				k=0; 		
				flag=0; 			
				l=i; 				
				while(a[l]!=' '&&l<(int)strlen(a)) 	
				{ 				
					if(a[l]==c) flag=1; 	
					b[k++]=a[l]; 		
					l++; 			
				} 				
				if (flag) 		
				{ 				
					ff=1; 			
					for (j=0;j<k;j++) 	
					{ 					
						printf("%c",b[j]); 	
					} 				
					printf("n"); 			
				} 		
			} 		
			else 	
			{ 			
				k=0; 	
				flag=0; 		
				l=i; 			
				if (a[l]==' ') 		
				{ 			
					l++; 	
					while(a[l]!=' '&&l<(int)strlen(a)) 	
					{ 					
						if(a[l]==c) flag=1; 
						b[k++]=a[l]; 				
						l++; 				
					} 				
					if (flag) 		
					{ 					
						ff=1; 				
						for (j=0;j<k;j++) 	
						{ 					
							printf("%c",b[j]); 	
						} 					
						printf("n"); 				
					} 			
				} 		
			} 	
		} 	
		
		if (flag==0&&ff==0) 	
		{ 		
			printf("No!n"); 
		} 
	} 
	return 0; 
}



 
     

最后

以上就是自觉豆芽为你收集整理的字符类题之反射的全部内容,希望文章能够帮你解决字符类题之反射所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部