在D语言中,当字符串被复制时,它们不再是指向原始字符串的指针。因此,在使用strstr函数查找子字符串时,应该使用复制的字符串而不是原始字符串。另外,如果子字符串不存在于原始字符串中,strstr函数将返回null

下面是修改后的代码:

import std.stdio;

void main() {
    char[] str = "Hello World, hello world!".dup;
    char[] one = "world".dup;
    char[] result = strstr(str.dup.ptr, one.ptr);
    if (result !is null) {
        writeln(result); // 输出 "world, hello world!"
    } else {
        writeln("Not found.");
    }
}

在这个版本中,我们使用dup.ptr来获取复制后的字符串的指针,以便在strstr函数中使用。然后,我们检查result是否为null,如果不是,则打印找到的子字符串。否则,我们打印一个错误消息

d语言以下代码为什么打印p为null char str = Hello World hello world!dup; char one = worlddup; printfs---strstrstrptroneptr;应该怎样纠正把代码贴给我

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

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