我在 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] // ???
}
最佳答案
您将 string
和 counter
作为指针传递给 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/