c语言中 字符串赋值给数组的三种表达方式是什么? C语言中将字符串赋值给字符数组的问题

c\u8bed\u8a00\u4e2d \u5b57\u7b26\u4e32\u8d4b\u503c\u7ed9\u6570\u7ec4\u7684\u4e09\u79cd\u8868\u8fbe\u65b9\u5f0f\u662f\u4ec0\u4e48\uff1f

1\u697c\u7684\u7b54\u6848\u662f\u9519\u8bef\u7684\uff0c\u5efa\u8bae\u56de\u7b54\u522b\u4eba\u95ee\u9898\u8fd8\u662f\u8981\u770b\u770b\u4e66\u7684\uff01
\u7b2c\u4e00\u79cd\u65b9\u5f0f:\u5b9a\u4e49\u7684\u65f6\u5019\u8fdb\u884c\u521d\u59cb\u5316
char
str[200]\uff1d{"abcd"};//\u8fd9\u91cc\u53bb\u6389\u5927\u62ec\u53f7\u4e5f\u884c
\u7b2c\u4e8c\u79cd\u65b9\u5f0f:\u5bf9\u6570\u7ec4\u5404\u5143\u7d20\u5355\u72ec\u8d4b\u503c
char
str[200];
str[200]={'a','b','c','d'};
/*\u7f16\u8bd1\u7cfb\u7edf\u4f1a\u5728\u6700\u540e\u52a0\u4e0a'\0'\u7684\uff0c\u7136\u540e\u5c31\u662f\u4e0d\u80fd\u4f7f\u7528str[200]="abcd"\u7684\u65b9\u5f0f\u5bf9\u5b57\u7b26\u6570\u7ec4\u8fdb\u884c\u6574\u4f53\u8d4b\u503c*/
\u7b2c\u4e09\u79cd\u65b9\u5f0f:\u5e94\u8be5\u662f\u4f7f\u7528\u6307\u9488\u5427
char
*str="abcd";
\u6216\u8005
char
*str;
str="abcd";
\u4f7f\u7528\u6307\u9488\u65f6\uff0c\u8fd9\u4e24\u79cd\u65b9\u5f0f\u90fd\u662f\u53ef\u4ee5\u7684\uff0c\u800c\u4e14\u4f60\u53ef\u4ee5\u4f7f\u7528\u4e0b\u6807\u7684\u65b9\u5f0f\u5f15\u7528\u5b57\u7b26\u4e32\u4e2d\u7684\u5404\u5b57\u7b26

char s[20];s="helo";\u8fd9\u6837\u9519\u8bef\u7684\u539f\u56e0\u5c31\u662f\uff1a\u4e0d\u80fd\u7528\u8d4b\u503c\u8bed\u53e5\u5c06\u4e00\u4e2a\u5b57\u7b26\u4e32\u5e38\u91cf\u76f4\u63a5\u7ed9\u4e00\u4e2a\u5b57\u7b26\u6570\u7ec4\u8d4b\u503c\u3002
char s[20];
char ss[]="hello";
s=ss;\u9519\u8bef\u539f\u56e0\u662f\uff1a\u4e0d\u80fd\u7528\u8d4b\u503c\u8bed\u53e5\u5c06\u4e00\u4e2a\u5b57\u7b26\u6570\u7ec4\u76f4\u63a5\u7ed9\u4e00\u4e2a\u5b57\u7b26\u6570\u7ec4\u8d4b\u503c\uff0c\u5373\u5b57\u7b26\u4e32\u7684\u590d\u5236\uff08c\u8bed\u8a00\u4e2d\uff0c\u4f46\u662f\u5728c++\u7684string \u7c7b\uff0c\u4e0a\u9762\u7684\u8d4b\u503c\u662f\u6b63\u786e\u7684\uff09\u5fc5\u987b\u7528strcpy()\u51fd\u6570\u5b9e\u73b0\u3002\u800cchar a[ ]=\u201dtoyou\u201c;\u6b63\u786e\u7684\u539f\u56e0\u662f\uff1a\u56e0\u4e3a\u5728\u58f0\u660e\u6570\u7ec4\u53d8\u91cf\u7684\u65f6\u5019\u5c31\u662f\uff0c\u4e3a\u5176\u5f00\u8f9f\u7a7a\u95f4\uff0c\u5e76\u4e3a\u5176\u521d\u59cb\u5316\uff0c\u8fd9\u6837\u624d\u662f\u7b26\u5408c\u8bed\u8a00\u8bed\u6cd5\u7684\u3002

\u6269\u5c55\u8d44\u6599\uff1aC\u8bed\u8a00\u4e2d\u5b57\u7b26\u4e32\u8d4b\u503c\u7684\u7406\u89e3
\u4e00\u3001\u6307\u9488\u5f0f\u8d4b\u503c

\u4e0a\u9762\u7684\u793a\u4f8b\u662f\u663e\u7136\u53ef\u4ee5\u6b63\u5e38\u6267\u884c\u7684\uff0c\u4e5f\u662f\u5f88\u5bb9\u6613\u7406\u89e3\u7684\u3002\u4f46\u662f\u4e0b\u9762\u8fd9\u79cd\u65b9\u5f0f\u5c31\u4ee4\u4eba\u6709\u70b9\u96be\u4ee5\u7406\u89e3\u4e86\u3002

\u901a\u8fc7\u7a0b\u5e8f\u7684\u8fd0\u884c\u60c5\u51b5\uff0c\u6211\u4eec\u53ef\u4ee5\u77e5\u9053\uff1achar *p = "hello";\u8fd9\u79cd\u5b57\u7b26\u4e32\u7684\u8d4b\u503c\u65b9\u5f0f\u662f\u5b8c\u5168\u6ca1\u6709\u95ee\u9898\u7684\u3002\u8981\u7406\u89e3\u8fd9\u79cd\u8d4b\u503c\u65b9\u5f0f\uff0c\u6211\u4eec\u9996\u5148\u5f97\u7406\u89e3\u53cc\u5f15\u53f7\uff08\u7279\u522b\u6ce8\u610f\uff1a\u8fd9\u4e2a\u662f\u53cc\u5f15\u53f7\uff0c\u4e0d\u8981\u8d4b\u503c\u7684\u65f6\u5019\u7ed9\u5f04\u4e86\u4e2a\u5355\u5f15\u53f7\uff09\u5728\u8fd9\u4e2a\u8bed\u53e5\u4e2d\u505a\u4e86\u4ec0\u4e48\u5de5\u4f5c\u3002\u53cc\u5f15\u53f7\u4e3b\u8981\u505a\u4e863\u4e2a\u5de5\u4f5c\uff0c\u5206\u522b\u662f\uff1a
\uff081\uff09\u7533\u8bf7\u4e86\u7a7a\u95f4\uff08\u5728\u5e38\u91cf\u533a\uff09\uff0c\u5b58\u653e\u4e86\u5b57\u7b26\u4e32\u3002
\uff082\uff09\u5728\u5b57\u7b26\u4e32\u5c3e\u52a0\u4e0a\u4e86\u201c\0\u201d\u3002
\uff083\uff09\u8fd4\u56de\u5730\u5740\u3002
\u8fd9\u91cc\u6240\u8fd4\u56de\u7684\u5730\u5740\u5c31\u8d4b\u503c\u7ed9\u4e86char *\u7c7b\u578b\u7684\u6307\u9488\u53d8\u91cfp\u3002
\u4e8c\u3001\u901a\u8fc7\u5b57\u7b26\u6570\u7ec4\u76f4\u63a5\u628a\u5b57\u7b26\u4e32\u8d4b\u503c\u3002\u7a0b\u5e8f\u5982\u4e0b\uff1a

\u4e09\u3001\u9700\u8981\u6ce8\u610f\u7684\u4e00\u4e9b\u95ee\u9898
\u76f4\u63a5\u628a\u5b57\u7b26\u4e32\u8d4b\u503c\u7ed9\u6570\u7ec4\u540d\uff08\u4e5f\u5c31\u662f\u6570\u7ec4\u9996\u5143\u7d20\u7684\u9996\u5730\u5740\uff09\u662f\u4e0d\u884c\u7684\u3002

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"};


         



1楼的答案是错误的,建议回答别人问题还是要看看书的!

第一种方式:定义的时候进行初始化
char str[200]={"abcd"};//这里去掉大括号也行

第二种方式:对数组各元素单独赋值

char str[200];
str[200]={'a','b','c','d'};
/*编译系统会在最后加上'\0'的,然后就是不能使用str[200]="abcd"的方式对字符数组进行整体赋值*/

第三种方式:应该是使用指针吧
char *str="abcd";
或者 char *str;
str="abcd";
使用指针时,这两种方式都是可以的,而且你可以使用下标的方式引用字符串中的各字符

1、定义的时候直接用字符串赋值
char a[10]="hello";
注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!
2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};
3、利用strcpy
char a[10]; strcpy(a, "hello");
易错情况:
1、char a[10]; a[10]="hello";//一个字符怎么能容纳一个字符串?况且a[10]也是不存在的!
2、char a[10]; a="hello";//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许!
还有:不能使用关系运算符“==”来比较两个字符串,只能用strcmp() 函数来处理。

char str1[12];int i;
for(i=0;i<12;i++)
scanf("&c",&str1[i]);

char str1[12];int i;
scanf("&s",&str1);

char str1[12];
gets(str1);
我应该没有也弄错你的意思吧。

char str[200]="abcd";

char str[200]={"abcd"};

char str[200];
str[200]="abcd";

不晓得你还要什么

扩展阅读:c#字符串截取 ... 截取字符串的三种方法 ... c语言输出字符串数组 ... 字符串有几种赋值方式 ... 怎么给字符串数组赋值 ... c#字符串长度 ... 字符串赋值两种方法 ... 字符数组默认赋值为0 ... c语言字符串赋值各种写法 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网