c语言字符串函数初始化 c语言中字符串的初始化

C语言字符数组如何初始化?

1、直接逐个初始化字符数组:

成都创新互联公司从2013年成立,是专业互联网技术服务公司,拥有项目网站设计制作、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元海陵做网站,已为上家服务,为海陵各地企业和个人服务,联系电话:18980820575

字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。

char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};

注意:如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0'

)。

2、用字符串常量来初始化字符数组:

在c语言中,将字符串作为字符数组来处理。因此可以使用字符串来初始化字符数组。

char str[]={"I am happy"};

也可以省略花括号。

char str[]="I am happy";

但是,上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是错误的。

char str[];

str="I am happy";//错误,字符数组的赋值只能按元素一一赋值

C语言中字符串初始化问题

chardata[20];

data="hello";

先解释这个为什么是错的,因为data="hello";实际上就是data[0]="hello";是data字符数组的首个字符,很显然不能放字符串。

至于两者的区别,后者可以可以更方便通过指针来访问修改删除元素。

char*data;

data="hello";这句中的data是指针变量,指向"hello"这个字符串在内存中的首地址。

在c语言中,举例说下字符串定义和初始化?字符串定义有几种方式?字符串初始化有几种方式?

字符串定义一般有两种方式

1. 字符数组方式

char s[100];

2.字符指针方式

char * s;

s=(char *)malloc(100);

3.初始化,如果是数组可以在定义的时候初始化

char s[100]={0};

也可以 memset( s, 0, sizeof(s) );

如果是指针 memst( s, 0, 100 );

有时候也可以很简单的只把第一个字符初始化,如s[0]='\0',或者 *s='\0';

C语言?:语句中的字符串该怎么初始化定义?

应该选a

char

str[]

= {'g',……,'l'};

没有给str设定有多少个字符,比如str[8],也没有在字符中{'g',……,'l'}设置结束标记"\0"

所以是错的。

d项因为是"good!"字符串,所以在赋值给str[]的时候会自动根据字符串长度设置数组长度,同时在结尾加结束标记"\0"

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;

}


网站名称:c语言字符串函数初始化 c语言中字符串的初始化
当前URL:http://hbruida.cn/article/hphdpc.html