snprintf()函数:最多从源串中拷贝n-1个字符到目标串中,后加一个0
来源:互联网 发布:radius协议认证端口 编辑:程序博客网 时间:2024/06/05 02:15
int snprintf(char *restrict buf, size_t n, const char * restrict format, ...);
函数说明:最多从源串中拷贝n-1个字符到目标串中,然后再在后面加一个0。所以如果目标串的大小为n 的话,将不会溢出。
函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值。
示例1(普通用法):
#include <stdio.h>#include <stdlib.h>int main(){ char str[10]={0,}; snprintf(str, sizeof(str), "0123456789012345678"); printf("str=%s/n", str); return 0;}
$ ./test
str=012345678
示例2(snprintf函数返回值的测试):
#include <stdio.h>#include <stdlib.h>int main(){ char str1[10] ={0, }; char str2[10] ={0, }; int ret1=0,ret2=0; ret1=snprintf(str1, sizeof(str1), "%s", "abc"); ret2=snprintf(str2, 4, "%s", "aaabbbccc"); printf("aaabbbccc length=%d/n", strlen("aaabbbccc")); printf("str1=%s,ret1=%d/n", str1, ret1); printf("str2=%s,ret2=%d/n", str2, ret2); return 0;}
aaabbbccc length=9
str1=abc,ret1=3
str2=aaa,ret2=9
补充一下,snprintf的返回值是欲写入的字符串长度,而不是实际写入的字符串度。如:
char test[8];
int ret = snprintf(test,5,"1234567890");
printf("%d|%s/n",ret,test);
运行结果为:
10|1234
0 0
- snprintf()函数:最多从源串中拷贝n-1个字符到目标串中,后加一个0
- Google经典面试题:求从1到n的n个整数中,字符“1”出现的个数
- 7.15 编写一个程序,将字符数组s2中的全部字符拷贝到字符数组s1中,不用strcpy函数。拷贝时,'\0'也要拷贝过去,'\0'后面的字符不拷贝。
- memmove用于从src拷贝count个字符到dest,
- 把字符串从src中复制n个字符到dst数组中
- 把字符串从src中复制n个字符到dst数组中
- 【codeforces 676C】 【尺取法】【从一个ab序列中最多改变k个字符找到最长的连续a子串或者b子串长度】
- 从一个ab序列中最多改变k个字符找到最长的连续a子串或者b子串长度.【尺取法】
- 从1到n的正数中1的出现次数,第一个只出现一次的字符
- 实现一个函数PrintN,使得传入一个正整数为N的参数后,能顺序打印从1到N的全部正整数.
- C语言:有一个字符串,包含n个字符。写一个函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串
- 从N到M中出现多少个1
- 从字符数组第m个元素开始复制到另外一个字符数组中
- n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字
- n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字
- 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数
- 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。
- 每天学习一算法系列(28)(输入一个整数n,求从1 到n 这n 个整数的十进制表示中1 出现的次数)
- java8 read file 读文件
- 芯片驱动之充电芯片2
- 实现Android下的FPS实时显示工具
- Maven2的配置文件settings.xml
- 测试
- snprintf()函数:最多从源串中拷贝n-1个字符到目标串中,后加一个0
- Android:布局中的view存成图片
- HTML聚美优品
- 扩展,有空慢慢看SpannableString、SpannableStringBuilder与String的关系
- 如何搭建lamp(CentOS7+Apache+MySQL+PHP)环境
- VS2012 + CPLEX12.6.1
- HDU 1671 Phone List(字典树)
- 问题
- Android 通过文件管理器选择文件夹下面的文件以及获取路径