[英]Using a while loop to iterate through a char array received as a parameter in C
我对C还是有点陌生,过去我一直坚持的一个小问题是通过作为参数接收的char数组进行迭代。 char数组创建为String文字,并作为参数传递。 根据我的理解,此数组只是作为指向数组中第一个元素的指针而接收的; 我的目标是遍历每个元素,直到到达所传递的String文字的末尾。
由于需要在循环内对每个char与char文字进行比较,因此,我已将数组中指向的值分配给用于比较的char变量。
我遇到麻烦的地方是指定此循环应在何时结束。
int main (int argc, char* argv[])
{
testString("the quick brown fox jumped over the lazy dog");
return EXIT_SUCCESS;
}
void testString(char line[])
{
int i = 0;
int j = 0;
char ch;
ch = line[i];
char charArray[128];
while (ch != '\0') // Not sure why this doesn't work
{
if ((ch == '\'' || ch == '-'))
{
charArray[j] = ch;
j++;
}
else if (isalpha(ch))
{
charArray[j] = ch;
j++;
}
else
{
// do nothing
}
i++;
ch = line[i];
}
}
在此先感谢您提供的任何建议。
循环的退出条件运行正常。
缺少的唯一一件事是,您需要在while
循环后使终止charArray
值为null并将其打印出来:
while (ch != '\0')
{
...
}
charArray[j] = '\0';
printf("charArray=%s\n",charArray);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.