查找数组中的连续字符

时间:2015-03-25 01:25:41

标签: visual-c++

我有一个布尔函数来评估一维字符数组。它有两个参数:1d字符数组和char c。如果给定的char在给定数组中连续出现至少四次,我希望函数返回true,否则返回false。

我根本不知道如何开始或完成此功能。请帮忙!感谢。

2 个答案:

答案 0 :(得分:1)

我希望我不会为你做功课;)。所以这是帮助你入门的问题的sudo代码

你想要的第一件事是方法头,它返回一个布尔值,并且有一个字符数组和一个char的参数

下一步是创建一个计数器并运行一个循环来筛选抛出数组中的每个字符。每次遇到数组中的特定字符时,你都会向计数器添加一个,如果下一个字符不是你想要的那个,那么你将计数器重置为0.然后在循环中添加一个条件来检查计数器到达4,如果是这样,你会返回true。如果它永远不会达到4那么你会想要返回false。来吧,尝试编码,看看你是否得到它。

答案 1 :(得分:0)

简单的问题。如果这是你的作业,那你就不应该这样做。你的问题需要改变。首先在询问之前尝试一下,然后一旦完成尝试,您可以发布错误或您不确定的代码片段,然后寻求帮助。否则你不会学到任何东西。找到了解决问题的简单方法。我不会给你完整的解决方案,而是一个帮助你解决问题的指南。

在我看来,由于该软件包附带的功能,字符串始终是使用而不是char的更好选择。除了你的问题或者你正在做这个程序的任何事情要求你使用char之外,Char很简单(在我看来)很烦人。

首先, 创建主程序 - >创建您的数组并根据需要对其进行初始化,或者您可以提示用户输入。无论哪个都有效。 使用" bool"用于创建布尔变量的数据类型。 提示用户输入要检查的char值。

现在调用该函数并提供参数。我猜这个功能是你所处的位置,所以我将为你提供我为这个问题所写代码的片段。

bool check(char* <array_name>, char* <array_name>) //for the array list and the 
                                                   //value to check for

{
     int size; 
     size = strlen(<array_name>); //to get the size of the array (array list)

     int counter=0; //to keep count of the occurrence of the char to check

     for(int x=0; x<size; x++) //ar = array list and token = char to check
     {
         if(ar[x]==token[0]) //check for each iteration if token is in ar[x]
             counter++;      //if it is then counter increases by 1
         else 
             counter = 0; //To reset the value to 0 if its not consecutive.

         if(counter == 4) //to stop the loop when 4 consecutive values has been found.
             break;
     }

     if(counter >= 4) //as per your requirement 4 or above
                return true;
     else
                return false;   
}

编辑:这是检查值,直到找到您要搜索的内容的4个连续值并结束循环。如果你想以不同的方式,请随时评论这个答案。您可以随时添加另一个计数器或任何内容来检查找到值的连续次数。例如1,1,1,1,2,3,4,1,1,1,1,2,3,4,1,1,1,1,2,3,4。

该计数器将为3,因为它每次重复相同的值连续4次发生3次。

如果这是你的家庭作业,那么你最好正确学习,因为这是一个非常简单的问题,你不应该要求解决方案,而是先寻求指导并先尝试。

祝你好运!如果您需要进一步澄清或帮助对此发表评论。