关于字符串的编程题真的是太常见了,而且是非常吸引BAT等公司IT技术面试官。这类题目一般都是不难的,核心代码都是非常简单,但是需要注意的细节是太多了,而这也正是考察了面试者的技术功底。关于字符串的考题,常见的有strncpy, strncat等等。
strncpy
代码来自Linux Manual手册 (在linux终端输入 man strncpy 就可以看到了)
char *
strncpy(char *dest, const char *src, size_t n)
{
size_t i;
for (i = 0; i < n && src[i] != '\0'; i++)
dest[i] = src[i];
for ( ; i < n; i++)
dest[i] = '\0';
return dest;
}
strncat
char*
strncat(char *dest, const char *src, size_t n)
{
size_t dest_len = strlen(dest);
size_t i;
for (i = 0 ; i < n && src[i] != '\0' ; i++)
dest[dest_len + i] = src[i];
dest[dest_len + i] = '\0';
return dest;
}
分析:
其实上面两段代码是很简洁的,也很美观。需要注意的点:- 返回值是
char* src的修饰是const,这点尤其重要,很考察个人的C++功底- 添加
'\0' size_t的使用
- 返回值是
对
size_t的解释:
size_t是定义在cstddef文件中,是一个与机器相关的unsigned类型。32系统中是unsigned int,64位系统中则是long unsigned int

本文详细分析了C++中用于字符串操作的两个经典函数strncpy和strncat,包括它们的核心代码实现、关键点注意事项及参数说明,特别是对于const修饰符的理解和size_t类型的使用,旨在帮助读者掌握这些基础但重要的API。

6859

被折叠的 条评论
为什么被折叠?



