C语言是怎么存储字符串的?末尾的\0需要自己手动输入吗?
1.C语言是怎么存储字符串的?2.末尾的\0需要自己手动输入吗?详细回答的会采纳!!!%后面跟s还是跟什么字母有讲究吗??...
1.C语言是怎么存储字符串的?
2.末尾的\0需要自己手动输入吗?
详细回答的会采纳!!! %后面跟s还是跟什么字母有讲究吗?? 展开
2.末尾的\0需要自己手动输入吗?
详细回答的会采纳!!! %后面跟s还是跟什么字母有讲究吗?? 展开
4个回答
展开全部
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'; //手动赋值结束符
展开全部
c语言是用字符组数来存储字符串的。。比如字符“hello” 你可以定义一个char a[6] ;也可以动态申请空间。。。
2. 末尾的\0是不用自己输入的,编译器会自动帮你加上。。
%s 是属于字符串的格式控制符。。。所以%后面的字母肯定是要讲究的。。。比如整数的格式控制串是%d, float 的是%f, double 的是 %lf 等。。。
2. 末尾的\0是不用自己输入的,编译器会自动帮你加上。。
%s 是属于字符串的格式控制符。。。所以%后面的字母肯定是要讲究的。。。比如整数的格式控制串是%d, float 的是%f, double 的是 %lf 等。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有三种方法:一种是声明字符数组,如 char a【10】,这种声明方法最多能存储10个字符,如果通过键盘输入,如果超出10个字符长度,会自动截断,只存储10个,如果不足,则会在空位上补'\0',另一种是字符串指针 char *s;这种声明方法是不会限制多少个字符,因此可以给s任意赋值,如 s="string", s="akjfasgjaga"等,系统会自动在字符串的末尾加上'\0';最后一种方法是建立struct 类型,此种类型中包含有char成员,通过malloc或calloc函数来动态地添加长度(这种方法一次添加一个或一组struct类型的数据,此时只要你不手动输入,是不会有'\0'的)
%s 是用printf函数输出时,只是按照字符串输出的固定结构
%s 是用printf函数输出时,只是按照字符串输出的固定结构
追问
无论哪种方法'\0'都是自动加在字符串末尾的吗?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个一个存储的 在字符数组里 \0不需要自己写 独到支付串末尾会自动形成\0 %s 是字符串。。。。。如printf("%s",a) 表示打印字符窜a中存储的内容 还有printf("%c",&a) 表示打印地址a 中内容。。。。
更多追问追答
追问
回复 jackwind1987:如何'\0'不自动加在末尾??
追答
你想这个干吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询