Devo realizzare un programma in c...devo inserire una stringa e devo restituire la sequenza di caratteri a partire dal c

di Anonimizzato28737 il
6 risposte
Questo è il programma, dove ho sbagliato :
#include<stdio.h>
#include<stdlib.h>

void stampa(char *stringa, char a, char b);

main(){
char stringa[100], a, b;
printf("Inserisci una stringa: ");
scanf("%s", stringa);

printf("Inserisci il primo carattere: ");
scanf("%s", &a);
printf("\nInserisci il secondo carattere: ");
scanf("%s", &b);

stampa(stringa, a, b);
}


void stampa(char *stringa, char a, char b) {
printf("La sottosequenza e': ");

for(int i=a; i<=b; i++ ){
printf("%s", *(stringa+i));

}


}

6 Risposte

  • Non si capisce cosa devi fare
  • Io credo di aver capito

    Credo debba stampare, se esistente, la sottostringa compresa tra due caratteri scritti da tastiera

    Non è chiaro se l'unica, la prima, la più breve o altri dettagli del genere

    Non difficile


    Per lo OP:

    Se ho capito bene hai confuso il carattere con l'indice del carattere
  • //devo inserire una stringa e devo restituire la sequenza di caratteri a partire dal carattere*
    #include <stdio.h>
    #include <stdlib.h>
    #define N 40
    
    int main()
    {
        int x=0;
        char stringa[N] = {}, primo=0;
        printf("inserisci una stringa : ");
        //scanf("%s",&stringa);
        gets(stringa);
        printf("inserisci il carattere da cui vuoi partire : ");
        scanf("%c",&primo);
        x=N-1;
        for(int i = 0; i < N ; i++)
        {
            if(primo == stringa[i])
            {
                for(int j=i; j<N;j++)
                {
                    printf("%c",stringa[j]);
                }
                break;
            }
            if(i==x)
            {
                printf("Il carattere non e' presente");
            }
        }
    }
  • Il problema è il ciclo.
  • No

    È banale
  • TheorLaw ha scritto:


    
        gets(stringa);
    
    Guarda che la funzione gets() ultimamente è stata tolta (nella libreria standard del C 11) , si può utilizzare fgets() che è simile.
Devi accedere o registrarti per scrivere nel forum
6 risposte