苦苦挣扎着弄清楚如何编写某个功能

时间:2015-03-06 19:58:08

标签: c function

我已经尝试了很长一段时间在我的C程序中编写一个函数,如果给定的数组不包含某个字母,它将执行一个任务,否则如果数组确实包含这个字母,另一个函数被称为,该计划继续在其他地方。

以下是我尝试过的一个此类功能的示例:

int Asterisk(){
    int v;

    for(v=0; v<sizeof Mask; v++){
        if(Mask[v] != '*'){
            return 1;
        }
        else{
            return 0;
        }
    }
}

如您所见,此函数在

时返回1
Mask[0] != '*'

我无法弄清楚如何在返回值之前检查数组的每个元素,而不是只检查第一个元素。

非常感谢任何帮助/指导!

3 个答案:

答案 0 :(得分:1)

通过数组,你的意思是一个简单的字符串?如果是这种情况,你只需要编写一个带字符串的函数和要查找的字母,如果该字符串在第一次出现该字母时不包含该字母,则返回0。

答案 1 :(得分:1)

尝试以下

int Asterisk()
{
    int i = 0;

    while ( i < sizeof Mask && Mask[i] != '*' ) ++i;

    return i == sizeof Mask;
}

虽然对我来说,我会编写函数,如果数组中存在星号,则函数返回1.

int Asterisk()
{
    int i = 0;

    while ( i < sizeof Mask && Mask[i] != '*' ) ++i;

    return i != sizeof Mask;
}

并且在调用者中使用它

if(!Asterisk()){/ *做某事* /}

即如果数组中存在星号,则函数返回1,否则返回0.

如果字符数组包含字符串,那么您只需使用标题strchr中声明的标准C函数<string.h>

答案 2 :(得分:0)

int Asterisk()
{
    int v;

    bool exists = false;
    for(v=0; v<sizeof Mask; v++){
         if(Mask[v] != '*'){
             exists = true;
              break;
         }
    }
return exists;
}