c语言初始化字符数组为空,怎么把已经初始化的字符数组设置为空?
怎么把已經初始化的字符數組設置為空?
兩種方法,如下所示。
方法一:
代碼演示
#include #include int main(void)
{
char a[]={'x','y','z'}; //定義字符數組,并初始化
int i=0;
for(i=0;i<3;i++)
printf("%c\t",a[i]); //輸出初始化的數組
memset(a,'\0',sizeof(a)); //把數組設置為空
while(i<3)
printf("\n%c\t%c\t%c",a[i]);
return 0;
}
memset相關原理
memset是計算機中C/C++語言初始化函數。作用是將某一塊內存中的內容全 部設置為指定的值,這個函數通常為新申請的內存做初始化工作。
void *memset(void *s, int ch, size_t n);
函數解釋:將s中當前位置后面的n個字節 (typedef unsigned int size_t )用 ch 替換并返回 s 。
memset:作用是在一段內存塊中填充某個給定的值,它是對較大的結構體或數組進行清零操作的一種最快方法 [1] 。
memset()函數原型是extern void *memset(void *buffer, int c, int count) buffer:為指針或是數組,c:是賦給buffer的值,count:是buffer的長度.
sizeof()相關原理
在 Pascal 語言中,sizeof() 是一種內存容量度量函數,功能是返回一個變量或者類型的大小(以字節為單位);在 C
語言中,sizeof() 是一個判斷數據類型或者表達式長度的運算符。 在Pascal 語言與C語言中,對 sizeof()
的處理都是在編譯階段進行。
方法二:
代碼演示
#include #include int main(void)
{
char a[]={'x','y','z'}; //定義字符數組,并初始化
int i=0;
for(i=0;i<3;i++)
printf("%c\t",a[i]); //輸出初始化的數組
bzero(a,sizeof(a)); //把數組設置為空
while(i<3)
printf("\n%c\t%c\t%c",a[i]);
return 0;
}
bzero相關原理
置字節字符串前n個字節為零且包括‘\0’。
原型:extern void bzero(void *s, int n);
參數說明:s 要置零的數據的起始地址; n 要置零的數據字節個數。
用法:#include 功能:置字節字符串s的前n個字節為零且包括‘\0’。
說明:bzero無返回值,并且使用string.h頭文件。
sizeof()相關原理
在 Pascal 語言中,sizeof() 是一種內存容量度量函數,功能是返回一個變量或者類型的大小(以字節為單位);在 C
語言中,sizeof() 是一個判斷數據類型或者表達式長度的運算符。 在Pascal 語言與C語言中,對 sizeof()
的處理都是在編譯階段進行。
總結
以上是生活随笔為你收集整理的c语言初始化字符数组为空,怎么把已经初始化的字符数组设置为空?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言程序设计编程解读,【答题】C语言程
- 下一篇: c语言数据转移,重温C语言(2)之数据