字符数组和字符串的区别与⽤法
区别
1:C语⾔中没有⽤于表⽰字符串的关键字以数组形式将字符串输出,字符串由C的字符数组变形⽽成,末尾加上'\0',字符串⽐字符数组多⼀个'\0'.
2:通常,在程序中使⽤字符串常量会⽣成⼀个“指向字符的常量指针”,当字符串常量出现在表达式中时,表达式所使⽤的值就这些字符所储存的地址。
3:字符串常量:字符串常量不能被修改,因为是共同的,指针类型的字符串常量只占四个字节;字符数组:如果想将⼀个字符串存放到变量中,必须使⽤字符数组,就是⽤⼀个字符型数组存放⼀个字符串。
4:C语⾔中,字符串是双引号括起来的单个或多个字符的集合,编译器⾃动在结尾加上'\0'字符。字符串常量储存在只读数据段,⽆法通过指针进⾏修改字符串中的某个字符。
5:C语⾔中,不能定义字符串,但是可以使⽤,通常会⽤字符数组来模拟字符串,必须是以'\0'结尾,那该字符数组就是普通的字符数组,不是字符串。
6:字符串常量本质上是⼀个⽆名的字符数组。
⽤法
1:定义字符数组
char s[100];
在字符数组中⼀个元素存放⼀个字符。
2:输⼊字符数组
i=0; while((a[i]=getchar())!='\n'){
i++;}
getchar();
char ch;
while(ch=getchar()!='\0'){
}
等等
这样输⼊直到遇到回车就结束输⼊。
3:调⽤时,如⼀般数组⼀样,⼀般⽤循环语句遍历,也不可直接赋值。————————————————————————————————————————————————————————————————————————1:定义字符串:
char s[]="happy"
char s[6]="happy"
因为定义字符串时,编译器会帮你数有⼏个元素,我们⾃⼰设定⼤⼩也可,但是要注意末尾的'\0',也占了位置。
2:输⼊字符串
键盘输⼊法gets(s);              ______可输⼊空格;
scanf("%s",s);                输到空格便停⽌输⼊
3:调⽤
跟字符数组相似,有⼀个结尾字符\0;
#include<stdio.h>
#include<string.h>
int main(){
char* s="tangtao";
char s2[10]={'t','a','n','g','t','a','o'}
for(int i=0;i<10;i++)
printf("s2[i]=%c\n",s2[i]);
printf("sizeof(s)=%ld\n",sizeof(s));
c 字符串转数组printf("strlen(s)=%ld\n",strlen(s));
printf("sizeof(s2)=%ld\n",sizeof(s2));
return0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。