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

标签 c arrays function pointers c-strings

我在 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() 的函数原型(prototype):

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

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

void anotherFunction(char* string[], int* counter)
{
  // ??? string[counter] // ???
}

最佳答案

您将 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 ) ;

关于c - 如何将 C 字符串中的计数器变量赋予函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58788818/

相关文章:

python - 类型错误 : Required argument not found __getitem__ numpy

c++ - 我可以在父构造函数中多次重用函数的返回值吗?

python - 将一个函数插入到 Flask 中的多个蓝图中

c - 由于比较错误,函数未返回 0

php - 如何使用 C 和 G-wan 网络服务器设置和读取 cookie

c - 分配对象和结构的有效类型

c++ - C标准: Character set and string encoding specification

c - C中准确的运行时间计算

php - 如果键不存在/不真实,则通过键或假值从数组中获取值

java - 如何对这个数组进行子串化?