C语言问题。

2019-03-23 18:07发布

C字符串函数 char *strstr(char *str1, const char *str2);传入的参数必须是char *p


现在我在stm32上定义了一个中文 GB2312编码的字符串 比如 unsigned char p[]="好好学习abcd"
现在需要找出 习 的位置,应该调用哪个函数啊?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
ywlzh
2019-03-23 23:06
/ 本帖最后由 ywlzh 于 2016-7-6 17:35 编辑

这个问题也不难,你主要是要知道一个中文字符占几个字节,2个!

那么先包含头文件
  1. #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");
        }

以上用拼音先代替着,可别学我
看结果:
QQ图片20160706172935.png

最后: 程序你要是想深入,可以继续优化,我这只是一个解决的办法,更多的你也可以去解决



吐槽一句,发出来的代码被吞了大部分搞了半天才好,最后不用<>


一周热门 更多>