MST

星途 面试题库

面试题:C语言中使用指针操作字符串实现子串查找

请编写一个C语言函数,使用指针操作字符串,在一个给定的字符串中查找另一个子串首次出现的位置。函数原型为:char* findSubstring(char* str, char* subStr);如果找到子串,返回子串在原字符串中的起始位置指针;如果未找到,返回NULL。
34.9万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <stdio.h>

char* findSubstring(char* str, char* subStr) {
    char *p1, *p2, *start;
    for (start = str; *start != '\0'; start++) {
        p1 = start;
        p2 = subStr;
        while (*p1 != '\0' && *p2 != '\0' && *p1 == *p2) {
            p1++;
            p2++;
        }
        if (*p2 == '\0') {
            return start;
        }
    }
    return NULL;
}