【C語言】 實現memset
void *memset(void *s, int ch, size_t n); 函式解釋:將s中後n個位元組(typedef unsigned int size_t)用 ch 替換並返回 s memset:作用是在一段記憶體塊中填充某個給定的值,它是對較大的結構體或陣列進行清零操作的一種最快方法。 #include<stdio.h> #include<assert.h> void *my_memset(void *arr,int c,size_t n) { assert(arr); char *dest = (char *)arr; int i = 0; for(i = 0;i < n;i++) { *(dest + i) = c; } return arr; } int main() { char arr[10]; int i = 0; memset(arr,0,10); for(i = 0;i < 10;i++) { printf("%d ",arr[i]); } printf("\n"); return 0; }
本文出自 “Vs呂小布” 部落格,謝絕轉載!
相關推薦
【C語言】 實現memset
void *memset(void *s, int ch, size_t n); 函式解釋:將s中後n個位元組(typedef unsigned int size_t)用 ch 替換並返回 s mem
【C語言】實現一個計算器(兩種方式)
1.使用switch…case…語句實現 #define _CRT_SECURE_NO_DEPRECATE 1 #include <stdio.h> #include <stdlib.h> int add(int x, int y) { &nb
【C語言】實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)的置0或者置1操作,並保持其他位不變
請編碼實現以下功能的函式 功能:實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)的置0或者置1操作,並保持其他位不變。 函式原型:void bit_set(unsigned char *p_data,unsigned char position,int flag)
【C語言】實現小遊戲掃雷
用C語言實現掃雷小遊戲,一共有三部分的程式碼 game.h #ifndef __GAME_H_ #define __GAME_H_ #include <stdio.h> #include <stdlib.h> #include <time.h> #def
【C語言】實現小遊戲三子棋
三子棋的規則:在九宮格棋盤中,只要橫、豎、對角線都能走成一條直線,就贏了。 我將實現三子棋遊戲的程式分為三個部分 第一部分:標頭檔案 game.h #ifndef _GAME_H_ #define _GAME_H_ #include <string.h> #include
【C語言】實現對一個8bit資料的指定位的置0或者置1操作,並保持其他位不變。
給定函式原型:void bit_set(unsigned char *p_data,unsigned char positin,int flag) 引數說明:p_data是指定的源資料;position是指定位(取值範圍為1~8);flag表示置0還是
【C語言】實現俄羅斯方塊
學習了C語言,寫一個俄羅斯方塊,程式碼絕對可以執行 大神勿笑,只適合初學者 本人也是菜鳥 1、考慮怎麼儲存俄羅斯方塊 俄羅斯方塊的形狀一共有19種類型,如果拿陣列來表示的話,可能會比較會浪費空間(網上有很多實現程式碼) 考慮到每種方塊形狀的
【C語言】實現對一個8bit資料(unsigned char)型別的指定位的置0或置1操作,並保持其他位不變
功能:實現對一個8bit資料(unsigned char)型別的指定位(例如第n位)的置0或置1操作,並保持其他位不變。 函式原型:void bit_set(unsigned char *p_data
【c語言】實現strchr
// 實現strchr(在一個字串中查詢字元,找到的話返回指向該字元的指標,沒找到的話返回空) #include <stdio.h> #include <assert.h> char * my_strchr( char const *str, c
【c語言】實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)置0或者置1操作,並保持其他位不變
// 實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)置0或者置1操作,並保持其他位不變 #include <stdio.h> void bit_set(unsigned char *p_data, unsigned char
【C語言】實現一個函式翻轉字串
實現一個函式翻轉字串 思路:->實現翻轉 1.翻轉即前後交換 2.對於字串前後交換直到中間一個字元終止迴圈 3.令(start++)<(end–)迴圈條件不滿足退出 #incl
【C語言】實現一個函式,可以左旋字串中的k個字元。
.實現一個函式,可以左旋字串中的k個字元。 AABCD左旋一個字元得到ABCDA AABCD左旋兩個字元得到BCDAA 思路: 1.如果直接進行左移,肯定會存在陣列前面的元素丟失。 解決辦法:
【c語言】實現翻轉字串函式reverse_string
函式reverse_string(char * string) 實現:將引數字串中的字元反向排列。 要求:不能使用C函式庫中的字串操作函式。 #include <stdio.h> #in
【C語言】模擬實現atoi
題目:請程式設計寫程式實現字串到整數的轉換,例如輸出字串“12345”,輸出整數12345. 分析:不僅要考慮給的是字元字串,還要考慮空白字元,正負號,空字串,以及越界訪問問題 #include <stdio.h> #include <stdlib.h> #include
【c語言】利用指標模式實現字串函式(strlen、strcat、strstr、strcpy、strcmp、memcpy、memove)
模擬實現strlen int my_strlen(const char *p) { assert(p != NULL); char *s = p; while (*p) { p++; } r
分治法實現大整數乘法【C++語言】
如果實現傳統演算法中兩個n位整數相乘,第一個整數中的n個數字都要分別乘以第二個整數的n個數字,這樣就一共要做n*n次乘法。看上去設計一個乘法次數少於n*n的演算法是不可能的,但事實證明並非如此,可以使用分治的思想計算兩個大整數的相乘。 首先從僅有兩位數字的兩個數12和34考慮,12 = 1 *
【C語言】一個數組中只有兩個數字是出現一次,其他所有數字都出現了兩次。 找出這兩個數字,程式設計實現。
一看到這道題,我想到了之前學習過的異或。我們知道兩個相同的數字異或的結果是 0,因為在計算機中,異或運算是按照二進位制位來運算的,相同為 0 ,相異為 1。任何數與 0 異或都等於它自己。既然我們要找出來一組數中不同的兩個數字,也可以採用這種方法。 但是這次不是直接異或,
【C語言】字串函式的實現
求字串的長度 strlen 長度不受限制的字串函式 strcpy strcat strcmp 長度受限制的字串函式 strncpy strncat strncmp 字串查詢 strc
【C語言】自己編寫程式實現strrchr函式,即在給定字串中找特定的字元並返回最後出現的位置
//自己編寫程式實現strrchr函式,即在給定字串中找特定的字元並返回最後出現的位置 #include <stdio.h> #include <string.h> char
【C語言】模擬實現strcpy strcat strstr strcmp
模擬實現strcpy(字串拷貝) 這道題,是將原字串的內容拷貝到目標字串中去,一個字元一個字元的拷貝直到遇到 ‘\0’ ,將它也拷貝過去後停止。 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include&