c语言 如何将已赋值的字符串初始化为空?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 如何将已赋值的字符串初始化为空?相关的知识,希望对你有一定的参考价值。

可以使用memset函数将字符串数组中所有元素全部设置为\0即可。
函数原型:void
*memset(void
*s,
int
ch, size_t n);
函数说明:将s中前n个字节
(typedef
unsigned
int
size_t
)用
ch
替换并返回
s

示例:
#include <stdio.h>
#include <string.h>
int main()

char buf[256] = "hello world"; //buf字符数组初始化
printf("%d\n", strlen(buf));
memset(buf, 0x00, sizeof (char) * 256); //全部设置为0x00即\0字符
printf("%d\n", strlen(buf));
return 0;
参考技术A 如果是指针字符串,可以直接给字符串赋值为NULL,如果不是指针字符串的话,没必要初始化,因为他们用完后就自动释放内存空间了。

c语言怎么结构数据初始化?

C语言
结构体类型
变量初始化分为
普通变量

数组变量
两种形式,说明如下:
typedef struct

int x,y;

direction
;
direction dir=1,2 ; //普通变量,用一组括起来,成员变量数据间以逗号分隔,按变量定义顺序对应数值。未赋值成员,默认填0
direction move[8]= //数组变量,整体用一组括起来,每一个元素按普通变量格式进行书写,各元素间用逗号分隔。未赋值元素,默认填0
0,0,0,1,1,0,1,1,
2,0,2,1,3,0,3,1
;
参考技术A 向地址0便是空值,其他数据若内容是0便是空值。填充一大片内存区域可以使用memset函数,它的填充长度是按字节计。
整形:int
a
=
0;
字符型:char
a
=
0;
数组:
int
a[20];
memset(
a,
0,
sizeof(int)*20
);
C字符串只需要把第一个字符设为'\0'即可。
当然也可以全部清成0。
char
a[20]
=
"ashdfuih";
memset(
a,
0,
sizeof(char)*20
);
例如有一个结构体Some
x,可以这样清零:
memset(
&x,
0,
sizeof(Some)
);
如果是一个结构体的数组Some
x[10],可以这样:
menset(
x,
0,
sizeof(Some)*10
);
任何一个指针都可以通过直接赋为0变成空指针:
Some*
p
=
0;
另外,虚机团上产品团购,超级便宜
参考技术B 你说的那个是逆序建立n个节点的链表,建完头结点后由于链表中没有其他节点就把头结点的next置为空,这一点如果不明白的话去看链表那一章,有介绍!!!
之后从后往前建立链表!!刚开始是l->next =null
要注意p是每次新建的节点,这样从后往前以此建立链表,只要明白p是每次新建的节点,和从后往前建立,就会明白的!!给你花了张图!!

以上是关于c语言 如何将已赋值的字符串初始化为空?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中怎么把一维数组初始化都为0,

c语言怎么结构数据初始化?

C语言数组初始化的问题?为啥我初始化了,数组长度还为0啊,如图

关于C语言结构体构造函数初始化的问题?

C语言 字符数组在定义时实际长度能不能等于有效长度 不给\0留空间

c语言中三维数组怎样初始化为0