2015-03-25 129 views
0

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

我不知道如何启动或完成此功能。请帮忙!谢谢。

+0

请注意,这与在长字符串内搜索“cccc”相同。 – 2015-03-31 02:51:04

回答

1

我希望我不会为你做功课;)。因此,这里的须藤代码对于这个问题,以帮助您开始

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

的接下来的步骤是创建一个计数器并运行一个循环来筛选数组中的每个字符。每次遇到数组中的特定字符时,如果下一个字符不是您想要的那个字符,那么您会将计数器重置为0.然后在循环中添加一个条件以检查计数器达到4,如果是的话,你会返回true。如果它从未达到4,那么你会想返回false。继续尝试编码,看看你是否得到它。

+0

实际的伪代码会很酷。 :) – 2015-03-25 01:36:43

0

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

在我看来,字符串总是一个更好的选择,而不是字符,因为该函数包附带的函数。除非你的问题或者你正在做的这个程序需要你使用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,因为它发生3次,每次连续重复相同的值4次。

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

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

+0

这个计数所有的事件,无论是否连续。 – 2015-03-31 02:50:10