繁体   English   中英

使用while循环遍历C语言中作为参数接收的char数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM