如何将C字符串中的计数器变量赋予函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将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] // ???
}
答案
您正在将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字符串中的计数器变量赋予函数的主要内容,如果未能解决你的问题,请参考以下文章