判定字符串是否相同时直接结束程序


void search(char ISBN,struct book *link)
{
    int h=0;
    struct book *p1;
    p1=link->next;
    while(p1)
    {
        if(strcmp(p1->ISBN,ISBN)==0)
        {
            h=1;
            printf("ISBN号:%s\n",ISBN);
            printf("书名:%s\n",p1->name);
            printf("作者:%s\n",p1->writer);
            printf("出版社:%s\n",p1->press);
            printf("出版日期:%d年%d月%d日\n",p1->date[0],p1->date[1],p1->date[2]);
            printf("价格:%.2lf\n",p1->price);
            break;
        }
            p1=p1->next;
    }
    if(h==0)
        printf("该图书不存在!");
}

ISBN是字符串,应该用ISBN[20]或*ISBN,是我脑子抽了😂

你的主程序怎么调用的
你想问什么?是想直接结束程序,还是不想结束程序

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/839139
  • 你也可以参考下这篇文章:判断2个字符串是否含有相同的字符
  • 除此之外, 这篇博客: 同一定时器不同通道的输入捕获实验理解中的 同定时器不同通道的输入捕获实验理解 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    首先,看看一个定时器一个通道下的输入捕获实验
    main.c

    #include "sys.h"
    #include "usart.h"		
    #include "delay.h"	
    #include "led.h" 
    #include "timer.h"
    #include "sys.h"
    #include "key.h"
    //ALIENTEK Mini STM32开发板范例代码1
    //跑马灯实验		   
    //技术支持:www.openedv.com
    //广州市星翼电子科技有限公司
    extern u8 TIM2CH1_CAPTURE_STA;
    extern u16 TIM2CH1_CAPTURE_VAL;
    
    int main(void)
    {		 
    	u32 t,temp=0;
    	Stm32_Clock_Init(9); 	//系统时钟设置
    	uart_init(72,9600);
    	delay_init(72);	     	//延时初始化
    	LED_Init();		  	 	//初始化与LED连接的硬件接口
    	TIM2_Cap_Init(0XFFFF,72-1);
    	while(1)
     {
    		if(TIM2CH1_CAPTURE_STA&0X80)
    		{
    			temp=TIM2CH1_CAPTURE_STA&0X3F;
    			temp*=65536;
    			temp+=TIM2CH1_CAPTURE_VAL;
    			printf("HIGH:%d us\r\n",temp);
    			TIM2CH1_CAPTURE_STA=0;
    		}
    	}	 
    }
    
    
    

    timer.c

    #include "timer.h"
    #include "led.h"
    
    void TIM2_Cap_Init(u16 arr,u16 psc)
    {
    	RCC->APB1ENR|=1<<0;
    	RCC->APB2ENR|=1<<2;
    	
    	GPIOA->CRL&=0XFFFFFFF0;
    	GPIOA->CRL|=0X00000008;
    	GPIOA->ODR|=0<<0;
    	
    	TIM2->ARR=arr;
    	TIM2->PSC=psc;
    	
    	TIM2->CCMR1|=1<<0;
    	TIM2->CCMR1|=1<<4;
    	TIM2->CCMR1|=0<<10;
    	
    	TIM2->CCER|=0<<1;
    	TIM2->CCER|=1<<0;
    	
    	TIM2->DIER|=1<<1;
    	TIM2->DIER|=1<<0;
    	TIM2->CR1|=0x01;
    	MY_NVIC_Init(2,0,TIM2_IRQn,2);
    }
    
    u8 TIM2CH1_CAPTURE_STA=0;
    u16 TIM2CH1_CAPTURE_VAL;
    
    void TIM2_IRQHandler(void)
    {
    	u16 tsr;
    	tsr=TIM2->SR;
    	if((TIM2CH1_CAPTURE_STA&0X80)==0)
    	{
    		if(tsr&0X01)
    		{
    			if(TIM2CH1_CAPTURE_STA&0X40)
    			{
    				if((TIM2CH1_CAPTURE_STA&0X3F)==0X3F)
    				{
    					TIM2CH1_CAPTURE_STA|=0X80;
    					TIM2CH1_CAPTURE_VAL=0XFFFF;
    				}else TIM2CH1_CAPTURE_STA++;
    			}
    		}
    		if(tsr&0x02)
    		{
    			if(TIM2CH1_CAPTURE_STA&0X40)
    			{
    				TIM2CH1_CAPTURE_STA|=0X80;
    				TIM2CH1_CAPTURE_VAL=TIM2->CCR1;
    				TIM2->CCER&=~(1<<1);
    			}else
    			{
    				TIM2CH1_CAPTURE_VAL=0;
    				TIM2CH1_CAPTURE_STA=0X40;
    				TIM2->CNT=0;
    				TIM2->CCER|=1<<1;
    			}
    		}
    	}
    	TIM2->SR=0;
    }
    

    这里就不详细赘述了,各个手册和资料记录的也十分详细,一个通道下的输入捕获也是比较简单。

  • 您还可以看一下 张容铭老师的微信小程序开发实战课程中的 开发测试工具小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^