最近,在華東師大的計(jì)算機(jī)三級(jí)考試資料中出現(xiàn)有如下幾個(gè)函數(shù),不得其解,在一般的C語言教材中又查不到他們,哪位高手指點(diǎn)一、二? 它們是:memset(),sprintf(),memcpy(). (注:1、這些函數(shù)在turboc2的某些"*.h"格式的頭文件中可以看到。2、請(qǐng)高手回答時(shí)盡量將函數(shù)的語法、參數(shù)、及用法都給講出來,最好有例子說明。謝謝!!!!)
熱心網(wǎng)友
1memcpy在兩個(gè)內(nèi)存空間之間拷貝字符。其函數(shù)原型為:void *memcpy( void *dest, const void *src, size_t count );其中dest是拷入起始地址(指針),src是原來的起始地址(指針),count是要拷貝的字符數(shù)量。例如: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按指定格式將數(shù)據(jù)輸出到一個(gè)字符串中。其用法與printf相似,只不過printf把數(shù)據(jù)輸出到屏幕等標(biāo)準(zhǔn)輸出,而sprintf則輸出到一個(gè)字符串。函數(shù)原型: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用指定字符覆蓋指定內(nèi)存區(qū)域。函數(shù)原型為:void *memset( void *dest, int c, size_t count );其中dest是要被覆蓋的起始地址(指針),c是指定的覆蓋字符,count是覆蓋的字符數(shù)量。例如: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。
熱心網(wǎng)友
printf(); 是?①Y料??到??瘦?出,是格式化的?出,??裼冪?出格式 %d, %f, %p等。sprintf(); 是?①Y料??到字串??笛e面。其餘,同printf()memset() 是?①Y料??到指定的???體裡面,memcpy() 是?⒛騁?K???體裡面的資料,??到另一?K???體裡面。你可以在 TC2 裡面,使用它所提供的 online help 得到進(jìn)一步的說明。