在D语言中,字符串是不可变的,因此当使用.dup创建一个副本时,会在堆上分配一块新的内存来存储该副本。在此代码中,'w'.dup.ptr返回的是一个指向堆上分配的新字符串的指针,而不是指向原始字符串常量的指针。因此,当使用strstr函数在str中查找字符串'w'时,它无法找到该字符串,因为它实际上正在查找一个指向不同内存位置的不同字符串。因此,p被赋值为null,并且在打印p时输出为null

D语言字符串操作:为什么strstr找不到'w'?

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

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