strstr函数实现(嵌入式软件面试题页1)

题目内容来自网络

答案个人总结,仅供参考

strstr函数实现(嵌入式软件面试题页1)

1、A

经典的strcpy的函数实现原理,众所周知,不多说

2、C;X2[2][2]=0x38

 如果在定义数组时就对全部元素赋初值,即完全初始化,则第一维的长度可以不指定,但第二维的长度不能省。

3、宏定义

((*(u32 *) (addr))= (value))

(*(u32 *) (addr)&0xFF)

value = 0x23

二、简答题

#include <stdio.h>
#include <assert.h>
 
const char* strstr(const char* src, const char* sub)
{
    const char *bp;
    const char *sp;
    if(!src || !sub)
    {
        return src;
    }
    /* 遍历src字符串  */
    while(*src)
    {
        /* 用来遍历子串 */
        bp = src;
        sp = sub;
        do
        {
            if(!*sp)  /*到了sub的结束位置,返回src位置   */
                return src;
        }while(*bp++ == *sp ++);
        src ++;
    }
    return NULL;
}

相关推荐