全国计算机二级C语言考试知识

img


Strlen(p)不明白是什么函数?我做题时理解的是求字符串长度。P=str(1)我觉得此时P指针指的是oneword但是似乎不对,不明白为什么,这是什么意思也不清楚。

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!


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^