我想将一个以null结尾的字符串复制到另一个位置,并想知道复制的字符串有多长.效率至关重要.有一个strcpy
功能可以实现这一点,但它不会返回实际复制的字符数.
当然,我可以通过简单地调用strlen
后来检测复制字符串的长度来找到它,但这意味着第二次再次遍历字符串中的字符,尽管strcpy
必须跟踪它复制的字符数.出于性能原因,我不想进行这样的第二次遍历.
我知道strcpy
使用简单的char-by-char副本编写自己很容易,但我认为标准库可能会应用魔法,这strcpy
比使用简单的char-by-char实现更快.
那么,在strcpy
没有再次遍历字符串的情况下,获取复制字符数的最佳方法是什么?
许多系统支持stpcpy
返回指向目标末尾的指针.您可以减去原始目标指针,这样您就可以获得长度.