Я программирую на C, и у меня есть некоторые ошибки, которые я действительно не ожидал, и я могу это понять. Идея состоит в том, чтобы создать меню с оператором switch для вызова функций по пользовательскому вводу. Я не получил никаких ошибок в функциях, но я получаю это:C Ошибка компиляции в операторе switch
«ожидаемое заявление перед„}“лексем }»
и это одна:
«случай метка„14“не в распределительном заявление », эта ошибка повторяется для каждой метки в инструкции switch. Я проверил скобки, и все они были заполнены открытыми и закрытыми скобками.
Я использую возвышенный-текст 2.0, как мой редактор и строитель и Linux как моя ОС
int main(){
char string[TMAXSTR], string2[TMAXSTR];
int option, ch;
for(option=0, ch=0;option<15;){
printf("Escolha uma opção:\n1 - Strconcat (concatenacao de strings)\n2 - Capicua\n3 - Strcmp (Comparacao de Strings)\n4 - Stricmp (transforma caratares em minusculas e compara)\n5 - Strdelc (apaga um determinado caracter)\n6 - Trimright (apaga espaços em branco a direita\n7 - Trimleft (apaga espaços a esquerda\n8 - Trimmiddle (apaga espaços no meio\n9 - Inverter (inverte uma string)\n10 - Findchar (devolve o numero de vezes que um determinado carater aparece na string\n11 - IndiceChar (devolve a posicao de um determinado carater\n12 - Maisculas (Converte a string em maiusculas\n13 - Minusculas (converte a string em minusculas)\n14 - Strstr\n15 - Sair");
switch(option){
case 1:puts("Introduza a primeira string: "); gets(string);
puts("Introduza a segunda string: "); gets(string2);
printf("%s",strconcat(string, string2);break;
case 2:puts("Introduza a string: "); gets(string);
if(capi(string))
puts("E capicua");break;
else
puts("Nao capicua");break;
case 3:puts("Introduza a primeira string: "); gets(string);
puts("Introduza a segunda string: "); gets(string2);
if(strcmp(string, string2)==0)
puts("Sao iguais");break;
else
puts("Sao diferentes");break;
case 4:puts("Introduza a primeira string: "); gets(string);
puts("Introduza a segunda string: "); gets(string2);
if(stricmp(string, string2)==0){
puts("Sao iguais");break;
else
puts("Sao diferentes");break;
}
case 5:puts("Introduza a string: "); gets(string);
puts("Introduza o carater a verificar: "); scanf(" %c",&ch);
printf("A string sem o carater é: %s",strdelc(string,ch));break;
case 6:puts("Introduza a string: "); gets(string);
printf("A nova string é: %s", trimright(string));break;
case 7:puts("Introduza a string: "); gets(string);
printf("A nova string é: %s", trimleft(string));break;
case 8: puts("Introduza a string: "); gets(string);
printf("A nova string é: %s", trimmiddle(string));break;
case 9:puts("Introduza a string: "); gets(string);
printf("A string invertida é: %s", meuinverter(string));break;
case 10:puts("Introduza a string: "); gets(string);
printf("O carater aparece: %dx", findchar(string, ch));break;
case 11:puts("Introduza a string: "); gets(string);
puts("Introduza o carater: "); scanf(" %c",&ch);
printf("O indice do carater é: %d", indchr(string,ch));break;
case 12:puts("Introduza a string: "); gets(string);
printf("A string em maisculas é: %s", mas(string));break;
case 13:puts("Introduza a string: "); gets(string);
printf("A string em minusculas é: %s", min(string));break;
case 14:puts("Introduza a string: "); gets(string);
puts("Introduza a segunda string: "); gets(string2);
printf("%s", mystrstr(string,string2));break;
default: puts("Invalido");break;
}
}
return 0;}
Ваш код действительно написан следующим образом? –
Есть ли номер строки, который приходит с первой ошибкой? – Evert
Посмотрите на эту строку (3-я строка в опции «case 1»: «printf («% s », strconcat (строка, строка2); break;». Существует закрывающая ')' отсутствует. – Evert