将2D数组的大小传递给函数?

时间:2019-10-24 02:49:46

标签: c

编写任务是编写一个程序,该程序从命令行输入中提取字符串并将它们分别设置为一个字符串数组,然后针对每个字符串检查其是否大写或小写并将字母转换为相反的大小写。

示例:

Input: Hello Sir How Are You? Output: hELLO sIR hOW aRE yOU?

我目前只能尝试遍历字符串数组以检查每个字符是否大写或小写。它必须是一个单独的函数togglecase(),该函数采用字符串数组并返回所需的输出。

char** toggle_case(char *data[], int size){

    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            printf("%s\n",&data[i][j] );

        }
        printf("\n");
    }

return data;
}

这是我去的地方。因此,函数togglecase()应该采用2D字符串数组,其中data[0][0]是该单词的第一个单词和第一个字符。我很难弄清楚如何获得单词的大小。我可以传递数组的大小,但是每个字符串中的字符数是问题。我可以弄清楚之后如何切换大小写。它也需要返回已更改的数组。

1 个答案:

答案 0 :(得分:2)

'\0'字符可用于标记字符串单词的结尾。然后,您可以使用strlen(data[i])或仅遍历数据[i]直到找到'\0'来找到长度。

例如, for (int j = 0; data[i][j] != '\0'; j++)

为此,最初填充data[i]时,应在末尾添加'\0'。如果您使用过scanf()之类的功能来进行输入,它将自动进行输入。