String em c

Conseguem me ajudar

Ler uma string de no máximo 50 caracteres e em seguida um caractere (entre A e z - consista se o caracter esta nesse
intervalo), mostrar quais as posições esse caractere (maiúscula ou minúscula) na string lida e quantas vezes ele apareceu

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>

int main()
{
setlocale(LC_ALL,“portuguese”);

char frase[50];
char carac;
char letra[50];
int i=0;



printf("Digite uma frase\n");
fflush(stdin);
gets(frase);

printf("Digite um caracter de Aa a Zz: \n");
fflush(stdin);
scanf("%c",&carac);


 while ((frase[i] >= 'a' && frase[i] <= 'z') ||
            (frase[i] >= 'A' && frase[i] <='Z'))


for (i=0; i<strlen(frase); i++)

{
    if (frase[i] == carac)

    {
        printf("As posições são: %d\n",i);


        i++;


        printf("A quantidade da letra %d \n,",carac);



    }


}





return 0;

}

Vc criou umas variáveis desnecessárias e está verificando se o primeiro caracter da frase é uma letra, vc deveria fazer esta verificação na variavel carac.

Daria pra fazer assim:

#include <ctype.h>
#include <stdio.h>
#include <string.h>

int main() {
  char letra;
  char frase[50] = {0};

  puts("Digite uma frase");
  // Lê uma frase de no máximo 50 caracteres
  fgets(frase, 50, stdin);
  // Guarda o comprimento da frase
  int length = strlen(frase);
  // Remove o caracter de nova linha da frase
  frase[length - 1] = '\0';
  // Converte a frase para letras minúsculas
  for (int i = 0; i < length; i++) {
    frase[i] = tolower(frase[i]);
  }

  puts("Digite um caracter de Aa a Zz:");
  // Lê um caracter
  scanf("%c", &letra);
  // Converte para minúsculo
  letra = tolower(letra);

  if (letra >= 'a' && letra <= 'z') {
    int contador = 0;

    for (int i = 0; i < length; i++) {
      if (frase[i] == letra) {
        printf("Posição: %d\n", i);
        contador++;
      }
    }

    printf("Total: %d\n", contador);
  } else {
    puts("Letra deve ser de a-z ou A-Z");
  }

  return 0;
}

Muito obrigada… estava muito perdida, me ajudou bastante.

1 curtida