Switch(argv[i])? (Linguagem C)

for(i=0; i<(argc-1); i++) { switch(argv[i]) { case "+": (...) case "-": (...) case "*": (...) case "/": (...) } }

o q tá errado? como corrigir?

o arqv é um ponteiro duplo pra char, i.e., uam vetor de duas dimensões, então vc tem q passar pro swich o contúto dessa “segunda dimensão”, coloque outro colchetes referenciando a poição zero
troque as aspas duplas por aspas simples, o switch-case compara inteiros ou caracter, as aspas duplas representam uma cadeia de caracteres

flw, t+

Outra coisa - argv[0] não é o primeiro parâmetro e sim o nome do executável.

Dica: em vez de fazer as coisas na mão, use uma biblioteca como o getopt (é claro que se puder fazer isso, já que você parece é estar aprendendo e na escola muitas coisas a gente não pode fazer).

http://www.gnu.org/s/libc/manual/html_node/Getopt.html

dá pra usar ponteiro como argumento do switch?

Desde quando C tem switch de strings?

n pode, né?

Olha, faz o maior tempo q eu não programo em C. Mas na época q eu programava só podia switch com valores numéricos, chars e enums.

poder pode, mas vc ñ vai ter o resultado que deseja, um ponteiro é algo como uma variável inteira na qual guarda um endereço de memória, sendo assim, quando vc usa o ponteiro vc está usando esse número inteiro, para acessar o conteúdo desse ponteiro vc precisa usar um operador, q pode ser [], * ou ->, cada um com seu intuito

A rigor não.
É que um ponteiro é convertido para um valor numérico totalmente maluco (um endereço de memória), que provavelmente não baterá com nenhuma das opções do switch.
Na prática, você tem de isolar o primeiro caracter da sua opção, algo como:

int i = ....;

if (strlen (argv[i]) > 0) {
    switch (argv[i][0]) {
        case '-': case '/':
        ....
            break;
        ....