请输入您要查询的百科知识:

 

词条 snprintf
释义

int snprintf(char *str, size_t size, const char *format, ...);

将可变个参数(...)按照format格式化成字符串,然后将其复制到str中

(1) 如果格式化后的字符串长度 < size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符('\\0');

(2) 如果格式化后的字符串长度 >= size,则只将其中的(size-1)个字符复制到str中,并给其后添加一个字符串结束符('\\0')

函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值。 --------------------------------------------

#include <stdio.h> //snprintf()

#include <string.h> //strlen()

int main()

{

char toname[30];

char *name = "yangtaiping";

printf("strlen(name) = %d\", strlen(name));

snprintf(toname, strlen(name)+strlen("姓名:")+1, "姓名:%s", name);

printf("toname = %s\", toname);

printf("strlen(name) = %d\", strlen(name));

}

strcpy() sprintf() strcat() 存在安全隐患, 其对应的安全版为:strncpy() snprintf() strncat() 。

snprintf(s, 100, "%.*S", 3, "abcd");

s的值为abc

%.*s 表示有两项, 第一项指定了长度,第二项则是%s的内容,所以取前三位

类似的函数还有:

#include <stdio.h>

int printf(const char *format, ...); //格式化输出到标准输出设备

int fprintf(FILE *stream,const char *format, ...); //格式化输出到文件流

int sprintf(char *str,const char *format, ...); //格式化的输出字符串输出到str指向的地址空间

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/31 14:50:06