Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 计算字符数组中一行中的字符数_C++_Visual Studio_Visual Studio 2010_Visual C++ - Fatal编程技术网

C++ 计算字符数组中一行中的字符数

C++ 计算字符数组中一行中的字符数,c++,visual-studio,visual-studio-2010,visual-c++,C++,Visual Studio,Visual Studio 2010,Visual C++,我试图编写一个程序,在字符数组中查找字符串,并随机输出字符串以及输出字符串编号和长度。我似乎遇到的麻烦是挑出长度。我不确定是否应该使用注释中存储的长度(如果它能够做到这一点),或者对每个字符进行计数并以这种方式输出长度。但我不知道该怎么做 char * strings [] ={ // String 1 of 5000: Length = 185 "J1{GW3_%-3s_%p*E<ed<qLB#YHN%S8.odr5|[QPz&Hslk#3vi[)T3wgh3lHdVt

我试图编写一个程序,在字符数组中查找字符串,并随机输出字符串以及输出字符串编号和长度。我似乎遇到的麻烦是挑出长度。我不确定是否应该使用注释中存储的长度(如果它能够做到这一点),或者对每个字符进行计数并以这种方式输出长度。但我不知道该怎么做

char * strings [] ={

// String 1 of 5000:  Length = 185
"J1{GW3_%-3s_%p*E<ed<qLB#YHN%S8.odr5|[QPz&Hslk#3vi[)T3wgh3lHdVtTGz|M1RsGy_r=J]Rgp`0+s)pbvpm<u'8NsPX:Uk)kU,d5t@w[{2efjt*z_`eOqa#iP3z)T<(eYWb%W{5g?ynp*<jfEeLUA5:ukgvw$Le,Yjv*o{a/,tV#dG1|+D", 

// String 2 of 5000:  Length = 9
"^PuU]gjh)", 

}

如您所见,字符串输出正确,但长度不正确

您最终要解决的问题是什么,您是否正在尝试解析数据

我不理解“在字符数组中查找字符串并随机输出字符串”;您必须知道字符数组可以理解为一个巨大的字符串,所以您是否在寻找特殊的分隔符,并希望返回所有有效匹配项的列表

如果是这样,您如何区分源代码中的有效字符串和随机内容之间的差异;它应该被分隔吗

如何随机输出字符串

请添加有关您试图解决的问题和正在处理的数据的更多详细信息。

str.size()其中str是字符串变量,它将输出字符串的长度

  • srand(时间(0))

  • 生成适当伪随机数的标准方法。”srand'根据在函数中传递的数字指定种子,而'time(0)'将每秒返回不同的数字,因此这将解决您的'same pattern'问题

  • a) 你可以用

    b) 或者,您可以简单地编写一个函数,该函数将通过字符串检查每个字符的0(0-行尾),然后返回当前迭代值

  • ///最新答案//

    我想你要做的是输出数组中的每个字符串,然后计算它们的长度,对吗???我写了这个快速程序,效果很好

    char* strings[] = {"hellothisistom", "nicetomeetyou"};
    
    for (int i = 0; i<2; i++)
    {
        int k = rand()%2;
        cout<< strings[k] << endl;
        cout<< strlen(strings[k])<<endl;
    
    }
    
    char*strings[]={“hellothistom”,“nicetometoou”};
    
    对于(int i=0;我为什么不能提取字符串并使用
    string::size()
    或simple
    strlen()
    ?我现在正在研究这两种方法,并试图找出如何在这里应用它。:)你能让我们知道你的家庭作业问题的确切措辞吗?是的,因为我说“string”时,这些数据是在字符数组中的我的意思是上面显示的一个随机字符字符串。当我使用字符数组时,我不确定使用string::size()或任何其他变体是否有效,因此,也许像您所说的那样使用分隔符会更有效。我的程序需要计算引号之间的字符数,并为每个输出吐出。那首曲子是我最不喜欢的。我会在一段时间内尝试一下播种。我以前做过,但一段时间没有。谢谢。:)是的,效果很好。非常感谢。尽管我还在努力解决我的另一个问题,但我正在努力!我的输出文件以随机顺序列出每个不带引号的“字符串”,当然,还会跳过注释。那部分很好用。我已经做了sizeof,它显示数组本身由5000行组成。事实上,我是在试验并使用“outfile1我不认为它实际上是在做你想做的事情。你是如何启动字符串的??根据你发布的内容,
    char*strings[]={……}
    将不起作用!如果你试图输出这些字符,它将只是随机值(而不是你创建的值)因为它们是尚未分配的内存空间。请查看此网站,了解如何正确实例化字符数组。为什么不尝试使用一个短字符串数组进行实验,您首先知道其中的内容?我想我可能在我的描述上误导了您。请再检查一遍,也许现在会更有意义。我的代码有5000行它们都是用rand函数完美输出的。怎么做?我不知道,但经过大量测试后它确实能工作。我感觉我在片段中学习,这肯定不是很好的lol,但我正在学习。对不起,我的错误。`char*strings[]={…}很好。我想我明白你现在想做的。你有一个字符串数组,并尝试输出字符串和每个字符串中的字符数,对吗?对,没错。对不起,我已经起床很长时间了,我可能不太明白我的话,哈哈。我在strlen()上使用了rand函数这就是为什么它给了我任意长度的字符串。我觉得我可以做其他的事情,但我还是不太确定。
    #11 (Length:168) - JZn'TGF&#K=EohoZT
    #12 (Length:189) - DiF9ao^T,7rtQ#Yc>n{_YIG_y
    #13 (Length:50) - y,|l2;hA;H;pHz?|jLADh
    
    char* strings[] = {"hellothisistom", "nicetomeetyou"};
    
    for (int i = 0; i<2; i++)
    {
        int k = rand()%2;
        cout<< strings[k] << endl;
        cout<< strlen(strings[k])<<endl;
    
    }