gpt4 book ai didi

c++ - 无法执行内部函数 strlen

转载 作者:行者123 更新时间:2023-11-28 01:18:25 24 4
gpt4 key购买 nike

我的任务是使用函数查找 C 风格字符串的长度。我确实解决了这个问题,但是当我通过调试器传递我的代码时,我发现了一些奇怪的事情。当函数完成它的工作并返回我一个数字时,在去 cout <<"***"<< endl; 的那一刻;在屏幕上打印文本之前,它被发送到功能和功能再次工作,但使用必须在屏幕上打印的文本。只有在这之后它才会打印在屏幕上。它是如何工作的?

#include "pch.h"
#include <iostream>
using namespace std;

unsigned strlen(const char *str)
{
unsigned x = 0;
while (str[x] != 0) x++;
return x;
}

int main()
{
// Test 1
const char* str1 = "How do you do";
if (strlen(str1) == 13)
cout << "Test 1 passed" << endl;
else cout << "Test 1 failed" << endl;
// Test 2
const char* str2 = "";
if (strlen(str2) == 0)
std::cout << "Test 2 passed" << std::endl;
else std::cout << "Test 2 failed" << std::endl;
// Test 3
const char* str3 = "This is stepik.org";
if (strlen(str3) == 18)
std::cout << "Test 3 passed" << std::endl;
else std::cout << "Test 3 failed" << std::endl;
const char* str4 = "Russian Federation";
if (strlen(str4) == 18)
std::cout << "Test 4 passed" << std::endl;
else std::cout << "Test 4 failed" << std::endl;
const char* str5 = "Russia";
if (strlen(str5) == 6)
std::cout << "Test 5 passed" << std::endl;
else std::cout << "Test 5 failed" << std::endl;
}

最佳答案

您做了一件坏事 - 您使用了标准库中的名称 (strlen) 作为您自己的函数的名称。实际上,您已经超越了它,并为所有麻烦打开了自己的大门。该程序格式错误。

作为一个实际问题,coutchar* 作为参数将确定字符串的长度,调用 strlen,这恰好是你的函数。

关于c++ - 无法执行内部函数 strlen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57807435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com