如何将C字符串中的计数器变量赋予函数

我在main中有一个函数,它从main函数中获取一个字符串。

主要我有以下代码:

int main(void)
{
  char string[] = "string" ;

  function(string);

  return 0;
}

在此函数中,我有一个循环遍历字符串。当特定条件为真时,我调用另一个函数,该函数必须再次获取字符串以及计数器。

unsigned int function(char* string)
{
  int counter = 0;
  while (string[counter] == ...)
  {
     if (... some condition ...) 
       anotherFunction(&string,&counter)
  }
}

anotherFunction()的功能原型:

anotherFunction(char* string[],int* counter)

问题是如何在此函数中使用计数器处理字符串?

void anotherFunction(char* string[],int* counter)
{
  // ??? string[counter] // ???
}
sdn0214 回答:如何将C字符串中的计数器变量赋予函数

您要将stringcounter都传递给anotherFunction()作为指针,因此要访问字符串中的字符,您需要同时取消引用:

*string[*counter]
^       ^

但是,现在还不清楚为什么要通过指针传递这些参数。对于string,几乎可以肯定是一个错误。对于counter,只有在anotherFunction()要修改counter且该修改在调用函数中可见的情况下才有必要。

您似乎打算选择

void anotherFunction( char* string,int* counter)

然后

string[*counter]

void anotherFunction( char* string,int counter)

string[counter]

如果您确实想修改counter,则最好只返回一个值:

int anotherFunction( char* string,int counter);

然后:

counter = anotherFunction( string,counter ) ;
本文链接:https://www.f2er.com/3129193.html

大家都在问