【发布时间】:2018-10-21 20:57:08
【问题描述】:
我完全是初学者,我想制作一个应用程序,对于作为命令行参数提供的每个较低的 camel case 单词将打印它的 snake case 等效项。还将大字母变成小字母并在它们之间生成"_"。
示例:
./coverter Iwant tobe famousAlready.
输出:
i_want
tobe
famous_already
我找到了一些代码可以使字母变小,并在命令行中分别输出单词。但我不知道如何将它们放在一起,如何在函数 main 中诉诸单个字符?这甚至可能吗?
#include <stdio.h>
int main (int argc, char* argv[]);
{
printf("argc = %d\n", argc);
for (int i = 0; i < argc; i++)
{
printf("argv[%d] = %s\n", i, argv[i]);
}
}
char change()
{
char words[30];
int ch;
printf ("Give the words: ");
int i=0;
while ((ch=getchar()) != EOF)
{
slowko[i]=ch;
if(isupper(slowko[i])) /* isupper, robi rzeczy - sprawdza czy */
/* litera z sekwencji jest duza */
{
slowko[i]=tolower(ch); /*zamien duzy znak na maly*/
printf("_");
}
else if(slowko[i] == ' ')
{
printf("\n");
}
printf ("%c", slowko[i]);
i++;
}
}
【问题讨论】:
-
您在这里使用了两种输入方法:参数向量和带有
getchar的交互式流。根据问题陈述,不应使用流,而应为函数提供字符串参数。 -
您的第一个测试用例与通常的定义不匹配。通常,插入下划线的唯一位置是在小写字母和大写字母之间。