如何从头到尾复制找到的事件?

strncpy(name,long_name,strrchr(long_name,'.')+1);

最佳答案

strrchr()返回指向上次发生的事件的指针。从中减去指向字符串开头的指针,就得到了长度。

strncpy(name,long_name, strrchr(long_name,'.') - long_name);

但是,这不会自动终止name。请确保已首先将其初始化为all\0。还要注意,如果字符不存在,strrchr()返回NULL。您可能希望将其移到strncpy()之外,并首先检查是否有有效的指针。
char *last = strrchr(long_name,'.');
if (last != NULL)
    strncpy(name,long_name, last - long_name);

编辑:我假设你在文章的strrchr()中输入了变量名-应该是long_name

08-07 03:33