定义字符char数组与字符串比较:char s[100]="";下面错误的是

1.用来存放字符数据的数组是字符数组,每个元素存放一个字符
2.字符数组的初始化,如下:
char a[10]={‘a’,’b’,’c’};
&//长度为10,剩下的7个位置全部补0
b[]={‘a’,’b’,’c’}; & &
& //[]里面可以不填写数字,系统会自动检测长度
”引起来的内容称为字符串,字符串一定以’\0’结尾
(2)字符串才识别'\0',数组不识别'\0'
&&&&&&&char
arr[] = {'a','b','c'};//不是字符串
char brr[10] = {'a','b','c'};//后面几个为'\0',是字符串
char crr[] = "abc";//是字符串长度为4,后面其实还有'\0'
char drr[3] = {'a','\0','b'};//是字符串,但是'b'不能被识别
char err[] = {'a','\0','b'};//数组长度为3
求数组长度公式sizeof(str)/sizeof(str[0])
用sizeof测量字符串的长度,会把'\0'算进去,所以得用strlen来测量(遇到‘\0’
会停止),引用的时候记得引用头文件
加深理解eg:
& & & char
str1[100] = "abcde";//100,5
char str2[] =
"abcde";//6,5
char *str3 = "abcde";//4,5
&str3是一个指针,所以sizeof求的是指针的长度
char str4[100] =
"abcd\0ef\n";//100,4
char str5[] =
"abcd\0ef\n";//9,4
char *str6 =
"abcd\0ef\n";//4,4
printf("%d,%d\n",sizeof(str1),strlen(str1));
printf("%d,%d\n",sizeof(str2),strlen(str2));
printf("%d,%d\n",sizeof(str3),strlen(str3));
printf("%d,%d\n",sizeof(str4),strlen(str4));
printf("%d,%d\n",sizeof(str5),strlen(str5));
printf("%d,%d\n",sizeof(str6),strlen(str6));
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。char s [10]=‘‘abcdefg ’’;为什么不能正确赋字符串(编译时系统会提示错误)?_百度知道
char s [10]=‘‘abcdefg ’’;为什么不能正确赋字符串(编译时系统会提示错误)?
我有更好的答案
B,char s[10];s=&abcdefg&; 这个应该是C吧,这个不行;数组不能直接赋值,除非初始化;数组名不能直接做左值;望采纳,谢谢
char s[10]=&abcdefg&;这样就行了。第一,不要用中文标点,要用英文状态下的标点,第二,是用双引号,不是二个单引号。
在C语言里,可以这么定义char s[10]=&abcdefg&,mingw编译通过
为您推荐:
其他类似问题
字符串的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。定义字符数组:char[ ] c=new char[100];以下哪个是c[50]的正确答案?_百度知道
定义字符数组:char[ ] c=new char[100];以下哪个是c[50]的正确答案?
(C) ’\u0000’
我有更好的答案
对于 一个 字符 数组,你定义并 赋予 内存空间但没有赋值,里面 会有默认的 ‘\0’,也就是 ‘\u0000’。 所以 选 c。其他答案 都不对,不管在 何种编译器上。
采纳率:39%
这样看你在什么编译器上了
为您推荐:
其他类似问题
字符数组的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。c语言的字符数组问题。。已知 :char s[100] ; int i=10; 则在下列引用数组元素的语句中,错误的表示是: 三路知识网
c语言的字符数组问题。。已知 :char s[100] ; int i=10; 则在下列引用数组元素的语句中,错误的表示是:
来源:网络收集 & 发布时间: &
A、s[i+10]
D、*((s++)+i)应该选哪个?顺便解释一下~~谢谢~
D 数组名被当做常指针,所以不能对其进行自加运算。
本文地址:https://www.slzays.com/0026.html
c语言的字符数组问题。。已知 :char s[100] ; int i=10; 则在下列... ……D
数组名被当做常指针,所以不能对其进行自加运算。……
c语言怎样取字符数组中元素的ascii码 ……需要时只要直接引用字符就可以了。以下的程序便起到了逐个输出字符串中每个字符及... int main(){char s[100];
int i,a[100]; gets(s); for(i=0;s[i];i++)&nb...……
编程序,输入一个长度为20的字符型数组,把数组中重复的元素删... ……其实原理很简单,你想想如果给你一串字符,你会怎么剔除多余的呢?
是不是从第1个字符开始向好找,找到与其相同的字符就删除掉,一直到最后;然后重复从第2个字符再重复。
C语言中二维字符数组和指针的问题
……1.fun函数定义中char *s[100] 和 char(*s)[100]区别在哪里?
char *s[100]; 这个叫指针数组,说白了就是本质上讲是数组,只不过数组的每个元素都是指针
char(*s)[100];这个叫数组...……
求四川省历年C语言二级真题或者模拟题 ……
6. 已知:int arr[10]; 则对arr数组元素的正确引用是( D )。
21 (A) arr[10] (B) arr[3.5] (C) ... 问题。
# include &stdio.h&
void fun(char *str)
int i,j=0;
for(i=0;str[i]!='...……
c语言字符数组指针 ……
void main()
char a[81]="";
char *p=a;
int n,k,pos... char a[5]="";
char *p[5];
for (int i=0;i&5;...……
C语言怎样给字符数组赋值 ……给字符数组赋值分两种情况,单字符赋值和字符串赋值。单字符赋值,可通过数组下标方... 引用数组元素,进行赋值,如:char a[10]; char ch='a'; for( i=...……
C语言中,怎么使用malloc函数为数组指针分配空间 比如要为ch... ……开设空间的操作可以应用循环语句进行,例如:对于char *p[10]; 可以应用 for(i=0;i&10;i+... char (*pa)[10]; //定义一个指向拥有10元素的字符数组的指针,
int (*p)[10];
C语言 通过malloc函数给指针数组分配空间 p=(int*)malloc(40*s... ……
语句进行,例如:对于char *p[10]; 可以应用
for(i=0;i&10;i++)
p[i]=(char *)malloc(sizeof...
char (*pa)[10]; //定义一个指向拥有10元素的字符数组的指针,
int (*p)[10];
所有问题分类有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是 D,为什么_百度知道
有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是 D,为什么
有定义语句:char
s[10];,若要从终端给s输入5个字符,错误的输入语句是
A)gets(&s[0]);
B)scanf(&%s&,s+1);
C)gets(s);
D)scanf(&%s&,s[1]);
我有更好的答案
s[1]是字符串数组s的第1个元素(从0开始数的),是字符。使用scanf输入字符串,需要给个地址,你可以&s[1]或s+1,但不能只填写s[1],s[1]不是地址,需要取地址&才行。A.对s[0]取地址,可以。gets要求传入的是一个指针,我们给个地址,也是一样的B。s+1是地址,是s[1]的地址,等价于&s[1]C.s是字符串首地址,可以。D。&s[1]才行,或是s+1
D)答案中给出的s[1]是一个值的表达式吗
是的,s[1]是第1个元素的值,直接使用是对s+1解引用。而我们需要的是s+1,或是对s[1]取地址。
采纳率:60%
来自团队:
S本来就是指向的数组的地址,所以B中S+1就是地址变量,而D中,s[1]是数组的第二个变量,所以必须加&
请问D)答案中给出的s[1]是一个值的表达式吗
应该是输入地址,加个&,就可以了
1条折叠回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 char argv 字符数组 的文章

 

随机推荐