Я работаю над простой программой, которая должна менять строку во всех прописных или строчных строках в зависимости от аргументов. Например, если название программы является изменение:Как использовать getOpt для определения того, не заданы ли параметры в C?
./change -u thiswillbeuppercase
THISWILLBEUPPERCASE
./change -l THISWILLBELOWERCASE
thiswillbelowercase
вопрос im, если я не могу понять, как выполнить заглавное действие по умолчанию, если параметры не указаны. Например, это, как я хотел бы, чтобы это выполнить:
./change thiswillbeuppercase
THISWILLBEUPPERCASE
Вот что моя основная функция выглядит в настоящее время:
int main(int argc, char *argv[]) {
int c;
while((c = getopt(argc,argv,"u:s:l:")) != -1){
char *str = optarg;
if(c == '?'){
c = optopt;
printf("Illegal option %c\n",c);
} else{
switch(c){
case 'u':
strupper(str);
break;
case 'l':
strlower(str);
break;
case 's':
strswitch(str);
break;
default:
strupper(str);
break;
}
}
}
return 0;
}
Я пробовал называть strupper fu nction в стандартной части оператора switch, но это, похоже, не работает. На данный момент программа ничего не делает, когда нет опций.
Я ищу StackOverflow для подобных вопросов, и я нашел кого-то с same issue, но их вопрос связан с Баш и C.
Если у кого есть какие-либо советы я бы очень признателен. Спасибо.
Либо ваш вопрос название вводит в заблуждение, или я не понимаю, что вы просите в теле вопроса –
Вторая желтая коробка функциональность я Я пытаюсь создать. Если пользователь не вводит никаких параметров, он будет вызывать функцию strupper по умолчанию. Извините, если я не понял этого. – loserman778
Почему вы не положили свой случай 'if (c == '?')' В оператор 'switch'? – e0k