字符串长度为0snprintf⽤法
1. 返回的是想要复制的字符串长度(不包括'\0'),如源字符串是"12",则返回2;如源字符串是"123",则返回3;⽽不管⽬标字符串的长度是多少.
2. 最多复制sizeof(dst)-1个字符,剩余的⼀个⽤'\0'补上.
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
char dst[3];
int len = 0;
// 源字符串长度 <= sizeof(dst) - 1, 此时copy整个源字符串, 并在copy后的⽬的字符串后加'\0'
len = snprintf(dst, sizeof(dst), "1");
cout << "len=" <<  len << endl;
cout << dst << endl;
len = snprintf(dst, sizeof(dst), "12");
cout << "len=" <<  len << endl;
cout << dst << endl;
// 源字符串长度 > sizeof(dst) - 1, 此时copy sizeof(dst) - 1个源字符串中的字符到⽬标字符串,并在⽬标字符串后加'\0'
len = snprintf(dst, sizeof(dst), "123");
cout << "len=" <<  len << endl;
cout << dst << endl;
len = snprintf(dst, sizeof(dst), "1234");
cout << "len=" <<  len << endl;
cout << dst << endl;
return0;
}
len=1
1
len=2
12
len=3
12
len=4
12

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。