9个回答
展开全部
C语言 将一个赋值过的数组置空步骤如下:
1、打开Visual C++ 6.0,新建一个C++ source file源文件。
2、输入以下代码:
#include "stdio.h"
#include "string.h"
void main(){
char a[10];
char b[10];
strcpy( a, "abcdefgh");
sprintf(b, "%s", "abcdefgh");
printf("%d\n",a);
printf("%d\n",b);
}
3、图中红色部分,第一个红框是导入的头文件,第二个红框是数组赋值的函数。
4、编译运行,如果出现1 error表示代码错误,错误需自行查找,如图所示编译成功。
5、运行后就将一个赋值过的数组置空。
展开全部
#include <stdio.h>
#include <string.h>
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)); // 也可以 bzero(a,sizeof(a))
while(i<3)
printf("\n%c\t%c\t%c",a[i]);
return 0;
}
程序最后输出为空,说明已经被清空了,可以再次赋值。
使用到的函数原型为:void *memset(void *s, int c, size_t n); bzero(void *s, size_t n);
其中c一般为'\0',size_t n 为你所要晴空的数组长度。
除了清空数组外,也空清空缓冲区,此外还有void swab(const void *from,void *to,ssize_t n )和
wchar_*wmemset(wchar_t *wcs,wchar_t wc,size_t n);)也可以,只是比较少用到。前两种比较用得多一些。
#include <string.h>
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)); // 也可以 bzero(a,sizeof(a))
while(i<3)
printf("\n%c\t%c\t%c",a[i]);
return 0;
}
程序最后输出为空,说明已经被清空了,可以再次赋值。
使用到的函数原型为:void *memset(void *s, int c, size_t n); bzero(void *s, size_t n);
其中c一般为'\0',size_t n 为你所要晴空的数组长度。
除了清空数组外,也空清空缓冲区,此外还有void swab(const void *from,void *to,ssize_t n )和
wchar_*wmemset(wchar_t *wcs,wchar_t wc,size_t n);)也可以,只是比较少用到。前两种比较用得多一些。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
初学者常用循环将整个数组重新赋值一遍:
for(i=0;i<n;i++)a[i]=0;
但是它的执行效率较低。
高效率的方法是使用memset函数。
memset是计算机中C/C++语言函数。将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针。
表达式:memset(a,0,sizeof(a))
包含在以下头文件中:<stdlib.h>、<memory.h>或<string.h>
void *memset(void *s, int ch, size_t n);
函数解释:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。
像上面的对a数组重新置空,可以使用以下语句:
memset(a,0,sizeof(a))
for(i=0;i<n;i++)a[i]=0;
但是它的执行效率较低。
高效率的方法是使用memset函数。
memset是计算机中C/C++语言函数。将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针。
表达式:memset(a,0,sizeof(a))
包含在以下头文件中:<stdlib.h>、<memory.h>或<string.h>
void *memset(void *s, int ch, size_t n);
函数解释:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。
像上面的对a数组重新置空,可以使用以下语句:
memset(a,0,sizeof(a))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
memset函数是可以达到你的要求,我一般也使用这个函数,你自己也可以编写一个函数用以自己清零,就是把数组的每一个字符都赋值为“\0”就可以了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询