C语言是怎么存储字符串的?末尾的\0需要自己手动输入吗?

1.C语言是怎么存储字符串的?2.末尾的\0需要自己手动输入吗?详细回答的会采纳!!!%后面跟s还是跟什么字母有讲究吗??... 1.C语言是怎么存储字符串的?
2.末尾的\0需要自己手动输入吗?

详细回答的会采纳!!! %后面跟s还是跟什么字母有讲究吗??
展开
 我来答
kaixingui2012
推荐于2016-07-26 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6393万
展开全部

C语言中的字符串,应该说是指字符串常量,如:"hello", "how are u"等,这些常量字符串本身在末尾存有一个\0,因\0是不可见字符,所以,看不到。

可以把字符串存储到一个字符数组中,存储方法分为三种:

1、定义字符数组,用常量字符串进行初始化

char str1[10]="hello";      //sizeof(str1)=10
char str2[]="how are u" ;   //未指定数组大小,按初始化字符串实际大小开辟数组空间,sizeof(str2)=10 ; 9个字符+1个\0  通过此方法,可以验证常量字符串中含有\0

2、定义字符数组,不初始化,采用字符串赋值操作函数进行赋值

char str[100];
strcpy( str, "hello"); //字符串拷贝
sprintf(str, "%s world", "hello"); //格式化输入,得到hello world
以上函数会自动在字符串尾赋值字符串结束符

3、定义字符数组,不初始化,采用循环,逐位赋值字符,并在结束位置赋值\0

char str1[10];
char str2[]="hello" ;
int i,j;
for(i=0,j=0;str2[i]!='\0';i++ ) //遍历字符串str2
    if ( i%2 ) //只取偶数位
        str1[j++]=str2[i];
str1[j]='\0'; //手动赋值结束符
linshaolie
推荐于2018-02-28 · TA获得超过434个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:105万
展开全部
c语言是用字符组数来存储字符串的。。比如字符“hello” 你可以定义一个char a[6] ;也可以动态申请空间。。。
2. 末尾的\0是不用自己输入的,编译器会自动帮你加上。。

%s 是属于字符串的格式控制符。。。所以%后面的字母肯定是要讲究的。。。比如整数的格式控制串是%d, float 的是%f, double 的是 %lf 等。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qmyylh
2013-01-17 · TA获得超过528个赞
知道小有建树答主
回答量:441
采纳率:100%
帮助的人:214万
展开全部
有三种方法:一种是声明字符数组,如 char a【10】,这种声明方法最多能存储10个字符,如果通过键盘输入,如果超出10个字符长度,会自动截断,只存储10个,如果不足,则会在空位上补'\0',另一种是字符串指针 char *s;这种声明方法是不会限制多少个字符,因此可以给s任意赋值,如 s="string", s="akjfasgjaga"等,系统会自动在字符串的末尾加上'\0';最后一种方法是建立struct 类型,此种类型中包含有char成员,通过malloc或calloc函数来动态地添加长度(这种方法一次添加一个或一组struct类型的数据,此时只要你不手动输入,是不会有'\0'的)

%s 是用printf函数输出时,只是按照字符串输出的固定结构
追问
无论哪种方法'\0'都是自动加在字符串末尾的吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
YCTY1314
2013-01-18 · 超过13用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:13.8万
展开全部
一个一个存储的 在字符数组里 \0不需要自己写 独到支付串末尾会自动形成\0 %s 是字符串。。。。。如printf("%s",a) 表示打印字符窜a中存储的内容 还有printf("%c",&a) 表示打印地址a 中内容。。。。
更多追问追答
追问
回复 jackwind1987:如何'\0'不自动加在末尾??
追答
你想这个干吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式