C语言中如何定义字符串?

 我来答
帐号已注销
高粉答主

推荐于2019-11-15 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:385
采纳率:100%
帮助的人:11.1万
展开全部

可以用数组或指针

数组:

char s[80]="abcd";或者char s[80]={"abcd"};     /*说明:自动加字符串结束标志:\0*/

char s[80]={"a","b","c","d","\0"};

指针:

char *s;char*s="abcd";

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

errrcac
推荐于2017-09-30 · TA获得超过1229个赞
知道小有建树答主
回答量:748
采纳率:0%
帮助的人:388万
展开全部
一维和二维的都可以;
一维的情况如下:
1,char string0[10];
2,char string1[]="prison break";
3,char string2[100]="michael scofield";
1句表示定义个长度为10的字符串,但未赋值,2句表示定义了一个字符数组string1,并进行初始化,使得其长度自动为13(字符串”prison break"中的字符个数加上结尾的'\0'),3句定义了一个有100个元素的字符数组string2,并初始化了17个元素("michael scofield";加上结尾的'\0');
二维的情况如下:
1,char string3[6][30];
2,char string3[6][30]=;
此句表示有6个字符串,每个字符串的长度为30,每个字符串的初始值与“joy","phosee","monses","chandele","ross","rather"相对应;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天云小店
推荐于2017-10-09 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:743万
展开全部

可以通过字符数组或字符指针来定义字符串,也可以用宏定义对常量字符串进行定义。


下面通过举例来分别进行说明:

char str1[] = "HelloWorld";  // 通过字符数组来定义字符串"HelloWorld",数组中每个存储单元存放一个字符

char *str2  = "HelloWorld";  // 通过字符指针来定义字符串"HelloWorld",指针str2指向一个存放字符串"HelloWorld"的连续地址单元的首地址

#define str3 "HelloWorld";  // 通过宏定义来定义字符串"HelloWorld",等价于str3="HelloWorld"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
闪喆黄馨
2019-03-02 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:25%
帮助的人:853万
展开全部
C语言每个字符串后面都有一个\0作为结尾,你的b没有\0作为字符串结尾,所以后面内存中的内容都一起显示了
在你的for循环结束以后加一个b[t]
=
'\0'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嫉祈剪映秃9q
2019-04-29 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:572万
展开全部
因为字符串是以'\0'结尾的哈,再则你定义的字符串长度是80哈,如果没到指定的长度,系统会自动补充的,就正如你的程序运行效果;有一下的解决方法:
1.拷贝后,在字符串末尾添加'\0';
2.输入你指定的字符串长度哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式