strcpy:字串复制
原型声明:extern char *strcpy(char *dest,const char *src); 头文件: 功能:把从src地址开始且含有NULL结束符('\0')的字符串赋值到以dest开始的地址空间 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。
strncpy:字串复制
原型:char * strncpy(char *dest, char *src, n); 功能:将字符串src中最多n个字符复制到字符数组dest中(它并不像strcpy一样遇到NULL才停止复制,而是等凑够n个字符才开始复制),返回指向dest的指针。 说明: 如果n > dest串长度,dest栈空间溢出产生崩溃异常。 否则: 1)src串长度<=dest串长度,(这里的串长度包含串尾NULL字符) 如果n=(0, src串长度),src的前n个字符复制到dest中。但是由于没有NULL字符,所以直接访问dest串会发生栈溢出的异常情况。 如果n = src串长度,与strcpy一致。 如果n = dest串长度,[0,src串长度]处存放于desk字串,(src串长度, dest串长度]处存放NULL。 2)src串长度>dest串长度 如果n =dest串长度,则dest串没有NULL字符,会导致输出会有。如果不考虑src串复制完整性,可以将dest最后一字符置为NULL。 综上,一般情况下,使用strncpy时,建议将n置为dest串长度(除非你将多个src串都复制到dest数组,并且从dest尾部反向操作),复制完毕后,为保险起见,将dest串最后一字符置NULL,避免发生在第2)种情况下的输出乱码问题。当然喽,无论是strcpy还是strncpy,保证src串长度
sprintf
函数功能:把格式化的数据写入某个字符串, 可以连接多个不同类型的字符串 头文件: 函数原型:int sprintf( char *buffer, const char *format [, argument] … ); 返回值:字符串长度(strlen)
sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,sprintf 在大多数场合可以替代 itoa。 如: //把整数123 打印成一个字符串保存在s 中。 sprintf(s, "%d", 123); //产生"123" 可以指定宽度,不足的左边补空格: sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567" 当然也可以左对齐: sprintf(s, "%-8d%8d", 123, 4567); //产生:"123 4567" 也可以按照16 进制打印: sprintf(s, "%8x", 4567); //小写16 进制,宽度占8 个位置, sprintf(s, "%-8X", 4568); //大写16 进制,宽度占8 个位置,左对齐
snprintf
int snprintf(char *restrict buf, size_t n, const char * restrict format, ...);
函数说明:最多从源串中拷贝n-1个字符到目标串中,然后再在后面加一个0。所以如果目标串的大小为n
的话,将不会溢出。
函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值。
strftime打印时间字符串
size_t strftime ( char * ptr, size_t maxsize, const char * format, const struct tm * timeptr );
例子:
time_t t = time(0); //获取时间
//产生"YYYY-MM-DD hh:mm:ss"格式的字符串。 char s[32]; strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", localtime(&t));memcpy 原型:extern void *memcpy(void *dest, void *src, unsigned int count);
用法:#include
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
举例:
// memcpy.c
#include
#include
main()
{
char *s="Golden Global View";
char d[20];
clrscr();
memcpy(d,s,strlen(s));
d[strlen(s)]=0;
printf("%s",d);
getchar();
return 0;
}
strcat
原型 extern char *strcat(char *dest,char *src);用法 #include 在C++中,则存在于头文件中。 功能 把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。说明 src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。