2019-03-23 18:07发布
yl20084784 发表于 2016-7-7 11:10 谢谢大大的热情帮助。 因为strstr(p,ptr);这个函数传入的参数是char * 如果使用unsigned char *做实参传 ...
最多设置5个标签!
这个问题也不难,你主要是要知道一个中文字符占几个字节,2个!
那么先包含头文件
- #include <string.h>
复制代码然后是程序部分u8 x=0;
unsigned char p[13]="好好学习abcd";
unsigned char ptr[3]="习";
char *R_p;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
LCD_Init(); //初始化LCD FSMC接口
POINT_COLOR=RED; //画笔颜 {MOD}:红 {MOD}
R_p=strstr(p,ptr); //这个是重点!
if(R_p){
LCD_ShowString(30,40,210,24,24,"baohan");
for(x=0;x<13;x++){
if(p[x]==ptr[0])
if(p[x+1]==ptr[1]){
LCD_ShowString(30,70,210,30,24,"weizhi:");
LCD_ShowxNum(30,90,x,24,24,1);
}
}
}else{
LCD_ShowString(30,40,210,24,24,"bubaohan");
}
以上用拼音先代替着,可别学我
看结果:
最后: 程序你要是想深入,可以继续优化,我这只是一个解决的办法,更多的你也可以去解决
吐槽一句,发出来的代码被吞了大部分搞了半天才好,最后不用<>
如果纠结char * 与unsigned char *, 你大可将你的字符串用char* 定义
一周热门 更多>