c语言中 字符串赋值给数组的三种表达方式是什么?
1、使用结构体类型(自定义类型)
#define MAXSIZE 20
typedef struct{
char ch[MAXSIZE];
int len;
}String;
2、初始化字符串的方法:
String t;
StrAssign(t,”I am happy”);
3、初始化一个字符串的方法如下,在最后添加’\0′
char str[] = {‘I’,’a’,’m’,’h’,’a’,’p’,’p’,’y’,’\0′};
扩展资料
C语言中字符串的定义方式
第1种:
char a[5]=”hello”;
第2种:
char a[]=”hello”;
第3种:
char* a=”hello”;
第4种:
char a[10];
gets(a);
第5种:
char* a[5]={“hello”,
“nihao”,
“good”,
“ok”,
“bye”};
C语言 字符串赋值
char
string[500]=”abcdefg”;
这个就是说你在给一个数组赋值
但是如果你定义完数组以后又这样
string[500]=”abcdefg”;
就是说你在给数组里的第500个元素赋值
首先数组下标最大是499
没有500
其次
只能存放一个字符你确放了一个字符串
当然不对了
怎么进行字符串赋值?C语言
在C语言中,字符串的赋值主要有两种方法,第一种是通过指针的方式直接赋值,第二种是通过数组直接赋值。
1、指针式赋值。
通过程序的运行情况,可以知道:char *p = “hello”;这种字符串的赋值方式是完全没有问题的。要理解这种赋值方式,首先得理解双引号(特别注意:这个是双引号,不要赋值的时候给弄了个单引号)在这个语句中做了什么工作。双引号主要做了3个工作,分别是:
(1)申请了空间(在常量区),存放了字符串。
(2)在字符串尾加上了“\0”。
(3)返回地址。
这里所返回的地址就赋值给了char *类型的指针变量p。
2、通过字符数组直接把字符串赋值。程序如下:
扩展资料:
字符串赋值需要注意的一些问题:
直接把字符串赋值给数组名(也就是数组首元素的首地址)是不行的。
会出现以下错误:
参考资料:
百度百科–字符串赋值
c语言字符串赋值
//
string[500]=”abcdefg”;
//是将字符串”abcdef”赋值给字符数组中string[500]这个元素,先不说string[500]已经越界了.
单单是string[500]只能存放一个字符,但你这里却要将一串字符串赋值给他.当然会错误.
像你说的在定义时初始化是对的.
如果定义后要进行赋值.就用string.h中的strcpy()函数,将”abcdefg”复制到字符串string中.
代码如下:
#include
stdio.h
#include
string.h
int
main()
{
char
string[500];
//
string[500]=”abcdefg”;
strcpy(string,”abcdefg”);
//将字符串常量赋值给字符数组
return
0;
}