最近,在华东师大的计算机三级考试资料中出现有如下几个函数,不得其解,在一般的C语言教材中又查不到他们,哪位高手指点一、二? 它们是:memset(),sprintf(),memcpy(). (注:1、这些函数在turboc2的某些"*.h"格式的头文件中可以看到。2、请高手回答时尽量将函数的语法、参数、及用法都给讲出来,最好有例子说明。谢谢!!!!)
热心网友
1memcpy在两个内存空间之间拷贝字符。其函数原型为:void *memcpy( void *dest, const void *src, size_t count );其中dest是拷入起始地址(指针),src是原来的起始地址(指针),count是要拷贝的字符数量。例如:char string1[60] = "The quick brown fox jumps over the lazy fox";char string2[60] = "The quick brown fox jumps over the lazy dog";memcpy( string1 + 16, string2 + 40, 3 );printf( "Result:\t\t%s\n", string1 );则程序输出:"The quick brown dog jumps over the lazy fox"2sprintf按指定格式将数据输出到一个字符串中。其用法与printf相似,只不过printf把数据输出到屏幕等标准输出,而sprintf则输出到一个字符串。函数原型:int sprintf( char *buffer, const char *format [, argument] 。。。 );例如:void main( void ){ char buffer[200], s[] = "computer", c = 'l'; int i = 35, j; float fp = 1。7320534f; j = sprintf( buffer, "\tString: %s\n", s ); j += sprintf( buffer + j, "\tCharacter: %c\n", c ); j += sprintf( buffer + j, "\tInteger: %d\n", i ); j += sprintf( buffer + j, "\tReal: %f\n", fp ); printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );}则程序输出: String: computer Character: l Integer: 35 Real: 1。732053character count = 713memset用指定字符覆盖指定内存区域。函数原型为:void *memset( void *dest, int c, size_t count );其中dest是要被覆盖的起始地址(指针),c是指定的覆盖字符,count是覆盖的字符数量。例如:void main( void ){ char buffer[] = "This is a test of the memset function"; printf( "Before: %s\n", buffer ); memset( buffer, '*', 4 ); printf( "After: %s\n", buffer );}则程序输出:Before: This is a test of the memset functionAfter: **** is a test of the memset function。
热心网友
printf(); 是?①Y料??到??瘦?出,是格式化的?出,??裼幂?出格式 %d, %f, %p等。sprintf(); 是?①Y料??到字串??笛e面。其餘,同printf()memset() 是?①Y料??到指定的???體裡面,memcpy() 是?⒛骋?K???體裡面的資料,??到另一?K???體裡面。你可以在 TC2 裡面,使用它所提供的 online help 得到進一步的說明。