我必须编写基本上在c ++中执行strlen()函数的代码,我哪里出错了?

错觉

argv数组是在调试属性中定义的,但是我正在访问内存错误:'0xC0000005:访问冲突读取位置0x00000000。

关于正在发生的事情有什么想法吗?

#include "stdafx.h"
#include <iostream>

using namespace std;


int main(int argc, char* argv[])
{ 

//TASK 2
for (int a = 0; a <= argc; a++) //counts until a = number of arguments
{
    for (int x = 0; argv[a][x] == '\0'; x++) //counts until x = '\0'
    {
        cout << "Number of characters in argument " << argv[a] << "=" << x; //Outputs the argument and string length x
    }
}
return 0;
}
紫罗兰色
for (int x = 0; argv[a][x] == '\0'; x++) //counts until x = '\0'

不,实际上,中间的条件继续条件,而不是终止条件。

您需要类似:

for (int x = 0; argv[a][x] != '\0'; x++)

此外,该循环会累积打印出长度,您可能只希望在结尾处保留该长度。

那里的解决方案是移到x外部范围并在内循环之后打印

您还希望只处理给定的“真实”参数,进行更改:

for (int a = 0; a <= argc; a++)

进入:

for (int a = 1; a < argc; a++)

因为argv[argc]规定为NULL,所以您不想取消引用它。argv[0]代表程序名称,您可能并不在意。

那会使您的代码看起来像:

#include <iostream>
using namespace std;

int main (int argc, char *argv[]) {
    for (int a = 1; a < argc; a++) {
        int x;
        for (x = 0; argv[a][x] != '\0'; x++)
            ;
        cout << "Chars in argument '" << argv[a] << "' = " << x << '\n';
    }
    return 0;
}

运行该代码可以testprog 1 12 123 "" 1234567890得到:

Chars in argument '1' = 1
Chars in argument '12' = 2
Chars in argument '123' = 3
Chars in argument '' = 0
Chars in argument '1234567890' = 10

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用C编写队列,我的代码哪里出错了

来自分类Dev

我哪里出错了?

来自分类Dev

我想知道我的代码哪里出错了

来自分类Dev

我在此C ++容器的析构函数中哪里出错了?

来自分类Dev

我在转换此代码时哪里出错了,因此它不会将变量放入数组中?

来自分类Dev

我在这个用于功率查询的 M-Code 函数中哪里出错了?

来自分类Dev

我哪里出错了 - JAVASCRIPT

来自分类Dev

我在我的 JS 代码中哪里做错了什么

来自分类Dev

C#我哪里出错了

来自分类Dev

jQuery效果:我哪里出错了?

来自分类Dev

我无法消除矩阵,哪里出错了?

来自分类Dev

计算阶乘,我哪里出错了?

来自分类Dev

我的 HTTP 请求哪里出错了?

来自分类Dev

简单的javascript添加,我哪里出错了?

来自分类Dev

默认情况下,PyCharm在哪里保存文本文件?而且,如果使用软件将其放在目录文件中,我的代码哪里出错了?

来自分类Dev

我在哪里做错了什么?执行时出错(运行时错误)

来自分类Dev

您好,我是xml和c#的新手,我基本上是想通过xml并使用xml文本阅读器创建一个机器人

来自分类Dev

我基本上如何将PHP数组传递给JS数组-Laravel 5?

来自分类Dev

访问基于OpenVZ的VPS基本上应该给我带来什么?

来自分类Dev

如何将 .mat 文件加载到 Matlab 上?基本上我的代码有什么问题?

来自分类Dev

我的构造函数出错了?

来自分类Dev

在C ++中,基本上不是只有一种“多态性”吗?

来自分类Dev

我基本上完成了该类,但是每次我从主类调用getWage时,仍然显示错误0.00?

来自分类Dev

JS验证登录表单-我哪里出错了?

来自分类Dev

我在设置 bxSlider 幻灯片时哪里出错了?

来自分类Dev

我在课堂上使用 promise 哪里出错了?

来自分类Dev

谁能看到我这个 srcset 哪里出错了?

来自分类Dev

试图找出python中的pow源代码| 我的功能出错了

来自分类Dev

我的推理哪里错了?

Related 相关文章

  1. 1

    用C编写队列,我的代码哪里出错了

  2. 2

    我哪里出错了?

  3. 3

    我想知道我的代码哪里出错了

  4. 4

    我在此C ++容器的析构函数中哪里出错了?

  5. 5

    我在转换此代码时哪里出错了,因此它不会将变量放入数组中?

  6. 6

    我在这个用于功率查询的 M-Code 函数中哪里出错了?

  7. 7

    我哪里出错了 - JAVASCRIPT

  8. 8

    我在我的 JS 代码中哪里做错了什么

  9. 9

    C#我哪里出错了

  10. 10

    jQuery效果:我哪里出错了?

  11. 11

    我无法消除矩阵,哪里出错了?

  12. 12

    计算阶乘,我哪里出错了?

  13. 13

    我的 HTTP 请求哪里出错了?

  14. 14

    简单的javascript添加,我哪里出错了?

  15. 15

    默认情况下,PyCharm在哪里保存文本文件?而且,如果使用软件将其放在目录文件中,我的代码哪里出错了?

  16. 16

    我在哪里做错了什么?执行时出错(运行时错误)

  17. 17

    您好,我是xml和c#的新手,我基本上是想通过xml并使用xml文本阅读器创建一个机器人

  18. 18

    我基本上如何将PHP数组传递给JS数组-Laravel 5?

  19. 19

    访问基于OpenVZ的VPS基本上应该给我带来什么?

  20. 20

    如何将 .mat 文件加载到 Matlab 上?基本上我的代码有什么问题?

  21. 21

    我的构造函数出错了?

  22. 22

    在C ++中,基本上不是只有一种“多态性”吗?

  23. 23

    我基本上完成了该类,但是每次我从主类调用getWage时,仍然显示错误0.00?

  24. 24

    JS验证登录表单-我哪里出错了?

  25. 25

    我在设置 bxSlider 幻灯片时哪里出错了?

  26. 26

    我在课堂上使用 promise 哪里出错了?

  27. 27

    谁能看到我这个 srcset 哪里出错了?

  28. 28

    试图找出python中的pow源代码| 我的功能出错了

  29. 29

    我的推理哪里错了?

热门标签

归档