1、这题目明显有问题,p指针都没定义,这么就
*p=str[1]
2、看题目的意思想表达的第二个字符串的长度和值。那么第一行也应该是
char *str[20] = {"One*World","One*Dream!"};
3、而且图片看起来感叹号后面还有空格,但是答案长度是10,其实是不存在空格的。
4、所以题目main函数程序应该是
char *str[20] = {"One*World","One*Dream!"};
char *p = str[1];
printf("%d\n",strlen(p));
printf("%s\n",p);
5、strlen是一个函数,意思是计算字符串长度知道'\0'停止,并且不包含‘\0’,程序中定义的是字符串,自带'\0',所以得到的第二个字符串长度是10。
6、不知道你哪里找的题目,明显会误人子弟,或者可能是编码方式有问题,建议慎用。
如果解决您的问题,请点赞采纳,谢谢。
str[1]是第二个字符串。
strlen返回字符串长度。
【以下回答由 GPT 生成】
首先,Strlen(p)函数是C语言中的标准函数,用于求字符串的长度。它的参数是一个指向字符的指针,代表字符串的起始位置。在该代码中,Strlen(p)是不正确的,应该是strlen(str)。p是一个未声明的变量,我们应该将其赋值为字符串的起始位置。
正确的代码应该是这样的:
#include<stdio.h>
#include<string.h>
int main() {
char str[20] = "One*World";
char *p = &str[1];
printf("%ld,", strlen(p));
printf("%s\n", p);
return 0;
}
在这个代码中,我们声明了一个名为p的字符指针,并将它赋值为字符串"One*World"中的第二个字符的地址。然后,我们使用strlen函数获取从p指针指向的位置开始的字符串的长度,并将其打印出来。最后,我们打印出从p指针指向的位置开始的字符串。
代码运行后的输出结果应为:
9,ne*World
所以,正确的答案应该是A. 9,One*Dream!