已知:char *s="\Name\\Address\n";则s所指的字符串的长度为()
作者&投稿:革凝 (若有异议请与网页底部的电邮联系)
应该是15,打印出来如下:
"NAME\Address
上面加上制表符,共14个字符,再加上后面的换行符,字符串长度应该是15
\Name\\Address
中可以分为\、N、a、m、e、\\、A、d、d、r、e、s、s、
共14个字符(含转义字符)
还应注意一下几点:
1、转移字符应视作一个字符,这个可查找相关资料;
2、\0具有终止意义,即一个字符串中第一次出现\0之前的字符个数才能视为该字符串长度
注:比一期有时会提醒你\N是一个不能识别的转义字符,故算作两个字符(其实正常情况下就是两个,除非你大小写搞错了)
还应注意一下几点:
1、转移字符应视作一个字符,这个可查找相关资料;
2、\0具有终止意义,即一个字符串中第一次出现\0之前的字符个数才能视为该字符串长度
注:比一期有时会提醒你\N是一个不能识别的转义字符,故算作两个字符(其实正常情况下就是两个,除非你大小写搞错了)
//还是用c标准库好,到处可以编译运行
#include
#include
char
*s="\t\"name\\address\n";
void
main()
{
int
n=strlen(s);
printf("%d\n",n);
}
凌种盐酸:[答案] B 才是对的吧 不考虑类型强转并且 在此前有 s=new char*;typedef char * pchar;pchar *s; s可以看成以上定义 也许更方便理解 typeid({%"%...
澄城县13821258450: 已知char **s,下面正确的语句是()As="ABCDEF"B*s="ABCDEF"C**s="ABCDEF"D*s="A' - ?
凌种盐酸: *s是s的地址,它是指向s的,不能赋予字符串,可以指向字符串的地址;**s是指针*s的地址,也不能赋予字符串.所以A对.(这是我的个人了解),希望对你有帮助.
澄城县13821258450: 已知 char **s;正确的语句是 - ?
凌种盐酸: char 是一个字符类型.char* 是一个字符数组.char** 可以看作指向char*的指针 对于char** s来说**s指向的是字符,所以**s = 'A'才是对的,C和D错*s指向的是字符数组,所以*s = "computer"是对的 s可以看作指向*s的指针,那么A显然也是错的
澄城县13821258450: 已知:char *s="\t\"NAME\\Address\n";则s所指的字符串的长度为多少? A19 B15 C18 D说明不合法?
凌种盐酸: //还是用c标准库好,到处可以编译运行 #include<stdio.h> #include<string.h> char *s="\t\"NAME\\Address\n"; void main() { int n=strlen(s); printf("%d\n",n); }
澄城县13821258450: 已知char **s;下面正确语句是()A,s="ABCDEF";B,*s="ABCDEF";C,**s="ABCDEF";D,*s='A' - ?
凌种盐酸: B 才是对的吧 不考虑类型强转并且 在此前有 s=new char*; typedef char * pchar; pchar *s;s可以看成以上定义 也许更方便理解typeid("ABCDEF").name()是const char [7]; typeid(*s).name()是char *; typeid(**s).name()是char; 如果考虑...
澄城县13821258450: 已知道字符串数组如下:(C语言) char *s[]={"man","woman","girl","boy","sister"}; - ?
凌种盐酸: #include <stdio.h>#include <string.h>//冒泡排序 void sort1(char *s[],int count) { char *ptemp; int i,j; for(i=0;i<count-1;i++) { for(j=0;j<count-1-i;j++) { if(strlen(s[j])>strlen(s[j+1])) //按长度比较的大小 { ptemp=s[j]; s[j]=s[j+1]; s[j+1]=ptemp; } } } }//选择排序 ...
澄城县13821258450: c语言 char *s="121"; int k=0,a=0,b=0; - ?
凌种盐酸: k=2 a=3 b=2 第一遍循环:k=1,执行b=b+s[k]-'0'; a=a+s[k]-'0';所以b=0+'2'-'0',所以b=2;a=0+'2'-'0'=2 第二遍循环:k=2,执行a=a+s[k]-'0'=2+'1'-'0'=3;然后执行continue,则应为s[3]=0,所以终止循环.执行printf("k=%d\n",k);printf("a=%d b=%d\n",a,b);所以 k=2 a=3 b=2
澄城县13821258450: 已知:char *s="\Name\\Address\n";则s所指的字符串的长度为() - ?
凌种盐酸: \Name\\Address\n中可以分为\、N、a、m、e、\\、A、d、d、r、e、s、s、\n共14个字符(含转义字符) 还应注意一下几点: 1、转移字符应视作一个字符,这个可查找相关资料; 2、\0具有终止意义,即一个字符串中第一次出现\0之前的字符个数才能视为该字符串长度 注:比一期有时会提醒你\N是一个不能识别的转义字符,故算作两个字符(其实正常情况下就是两个,除非你大小写搞错了)
澄城县13821258450: C语言:求char s[]="\"name\\address\023\n";,则字符串所占的字节数是??
凌种盐酸: 你好,\"占1个,name占4个,\\占1个,address占7个,\023占1个,\n占1个,隐含的结束标志\0占1位. 一共1+4+1+7+1+1+1共15个字节.若问题解决还望采纳鼓励,欢迎交流.
澄城县13821258450: 已知“char *s="abcde"; ”,则sizeof(s)值为?为什么? - ?
凌种盐酸: 楼准你好,是4个字节,因为s存放的是地址,在32位机中,地址是由32个二进制数组成的,而四个字节就是4*8=32位,刚好可以存放一个地址,而支个地址就是字符串的首地址!