鱼C论坛

 找回密码
 立即注册
查看: 1038|回复: 5

[已解决]C++指针

[复制链接]
发表于 2023-12-12 23:16:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
实现使用函数mystrlen()统计一个字符串的长度,主函数需用到指针
int mystrlen(char *str)
最佳答案
2023-12-12 23:26:44
骨头坠羽毛 发表于 2023-12-12 23:26
#include
using namespace std;

int mystrlen(ch ...

您的代码中存在一些错误和不完整的部分。首先,在`main()`函数中,您定义了一个字符变量`a`,但没有为其赋值,导致指针`p`指向未知的内存地址。此外,在输出`*p`之前,应该使用`cin`来接收用户输入的字符串。最后,在`main()`函数结束前,你应该返回一个整数值。

下面是对代码的修正和完善:

#include <iostream>
using namespace std;

int mystrlen(const char *str){
    int count = 0;
    while (*str!='\0') {
        count++;
        str++;
    }
    return count;
}

int main() {
    char a[100]; // 假设字符串长度不超过100个字符
    cout << "请输入一个字符串: ";
    cin >> a;
    int length = mystrlen(a);
    cout << "字符串的长度为: " << length << endl;
   
    return 0;
}

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-12 23:17:23 | 显示全部楼层
当我们使用指针来处理字符串时,可以通过指针的方式逐个访问字符串中的字符,直到遇到字符串的结束符'\0'。我们可以利用这个特点来实现统计字符串长度的函数。

下面是一个使用指针实现统计字符串长度的示例代码:
#include <iostream>int mystrlen(char *str) {    int count = 0;    // 使用指针来逐个访问字符,直到遇到字符串结束符'\0'    while (*str != '\0') {        count++;        str++;  // 指针向后移动一个位置    }    return count;}int main() {    char str[] = "Hello, World!";    int length = mystrlen(str);    std::cout << "The length of the string is: " << length << std::endl;    return 0;}
在`mystrlen()`函数中,我们用指针`str`来逐个访问字符,每次循环迭代时,将指针向后移动一个位置,直到遇到字符串结束符`'\0'`为止。同时,我们使用`count`变量来记录字符的个数,最后返回`count`作为字符串的长度。

在主函数中,我们定义了一个字符串`str`,并调用`mystrlen()`函数来统计其长度,并输出结果。

注意,在C++中,字符串是以字符数组的形式存储的,所以我们可以直接将字符串作为参数传递给`mystrlen()`函数。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-12 23:23:06 | 显示全部楼层
FishC 发表于 2023-12-12 23:17
当我们使用指针来处理字符串时,可以通过指针的方式逐个访问字符串中的字符,直到遇到字符串的结束符'\0'。 ...

如果要求是键盘输入这个字符串呢?我尝试过这个方法,好像是不行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-12 23:23:22 | 显示全部楼层
骨头坠羽毛 发表于 2023-12-12 23:23
如果要求是键盘输入这个字符串呢?我尝试过这个方法, ...

如果要从键盘输入字符串并计算其长度,可以使用C++中的std::cin来实现。下面是修改后的代码示例:
#include <iostream>int mystrlen(const char *str) {    int count = 0;    while (*str != '\0') {        count++;        str++;    }    return count;}int main() {    char str[100]; // 假设字符串长度不超过100个字符    std::cout << "请输入一个字符串: ";    std::cin >> str;    int length = mystrlen(str);    std::cout << "字符串长度为: " << length << std::endl;    return 0;}
在这个示例中,我们声明了一个字符数组str,用于存储从键盘输入的字符串。使用std::cin来读取用户输入,并将其存储到str数组中。然后调用mystrlen函数来计算字符串的长度,并输出结果。请注意,这里假设字符串的长度不超过100个字符,你可以根据实际需要调整数组大小。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-12 23:26:27 | 显示全部楼层
FishC 发表于 2023-12-12 23:23
如果要从键盘输入字符串并计算其长度,可以使用C++中的std::cin来实现。下面是修改后的代码示例:
#include <iostream>
using namespace std;

int mystrlen(char *str)
{
        int count=0;
    while (*str!='\0')
        {
        count++;
        str++;
    }
        return count;
}

void main()
{
        char a[50],*p=a;
        cout<<"请输入一个字符串:";
        cin>>*p;
        cout<<"字符串长度为"<<mystrlen(p)<<endl;
        system("pause");
}
这样运行结果一直是63
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-12 23:26:44 | 显示全部楼层    本楼为最佳答案   
骨头坠羽毛 发表于 2023-12-12 23:26
#include
using namespace std;

int mystrlen(ch ...

您的代码中存在一些错误和不完整的部分。首先,在`main()`函数中,您定义了一个字符变量`a`,但没有为其赋值,导致指针`p`指向未知的内存地址。此外,在输出`*p`之前,应该使用`cin`来接收用户输入的字符串。最后,在`main()`函数结束前,你应该返回一个整数值。

下面是对代码的修正和完善:

#include <iostream>
using namespace std;

int mystrlen(const char *str){
    int count = 0;
    while (*str!='\0') {
        count++;
        str++;
    }
    return count;
}

int main() {
    char a[100]; // 假设字符串长度不超过100个字符
    cout << "请输入一个字符串: ";
    cin >> a;
    int length = mystrlen(a);
    cout << "字符串的长度为: " << length << endl;
   
    return 0;
}

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 04:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表