在C++中,可以使用指针进行字符串操作来实现在使用strstr()函数时,写出匹配段前后的内容。下面是一个示例代码:

#include <iostream>
#include <cstring>

int main() {
    const char* str = "Hello World! This is a test.";
    const char* pattern = "World";
    
    // 使用strstr()函数查找匹配段的开始位置
    const char* match = std::strstr(str, pattern);
    
    if (match != nullptr) {
        // 计算匹配段的长度
        size_t matchLen = std::strlen(pattern);
        
        // 计算匹配段的开始位置
        const char* start = str;
        while (start != match) {
            std::cout << *start;
            start++;
        }
        
        // 输出匹配段
        std::cout << match;
        
        // 计算匹配段的结束位置
        const char* end = match + matchLen;
        while (*end != '\0') {
            std::cout << *end;
            end++;
        }
    } else {
        std::cout << "Pattern not found.";
    }
    
    return 0;
}

在上面的示例中,首先使用strstr()函数查找匹配段的开始位置,如果找到匹配段,则通过指针操作找到匹配段的前后内容并输出。如果未找到匹配段,则输出“Pattern not found.”。

运行以上示例代码,输出将是:"Hello World!"

在c++中如何在使用strstr函数时写出匹配段前后的内容

原文地址: http://www.cveoy.top/t/topic/hY25 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录