PROBLEMA ESERCIZIO CODEBLOCK

di il
2 risposte

PROBLEMA ESERCIZIO CODEBLOCK

Buonasera a tutti vorrei chiedervi un aiuto su un problema che non riesco a risolvere:
io scrivo da tastiera delle stringhe e poi devo Sostituire ad ogni sequenza “sh” il carattere ‘y’
e Sostituire le doppie con una sola ripetizione del carattere.
io ho provato a farlo cosi:
for(j=0;c[j]!=0;j++){
if(c[j]=='s' && c[j+1]=='h') {//se ho trovato sequenza sh
nuovo[t]='y';//nuovo e un vettore dove metto la stringa modificata quindi se ho trovato sh in nuovo metto y
t ++;//incremento indice nuovo
j++;}//incremento anche indice j perche la lettera dopo sara h e io non devo memorizzarla
else if(c[j]==c[j+1]){//se invece trovo una doppia
nuovo[t]=c[j];//metto in nuovo solo un carattere dei due
t++;//incremento indice del vettore nuovo
j++;//incremento anche indice del vettore c perche il carattere dopo sara j e io non devo memorizzarlo
else{nuovo[y]=c[j];//altrimenti se non ho trovato ne doppia ne sequenza sh continuo a copiare c in nuovo.

il ragionamento puo avere un senso?c sono altri ragionamenti magari piu corretti da seguire per svolgere questo esercizio??
spero di essere stato abbastanza chiaro nella mia spiegazione e ringrazio molto chiunque voglia darmi una mano cordiali saluti
}
else{nuovo[y]=c[j];
y++;}}

2 Risposte

  • Re: PROBLEMA ESERCIZIO CODEBLOCK

    Usa i tag CODE per evidenziare il tuo codice qui. Altrimenti non si capisce nulla.

    Mostra anche un main con cui utilizzi la tua funzione.
  • Re: PROBLEMA ESERCIZIO CODEBLOCK

    Buonasera grazie per il vostro aiuto allora ricapitolando io devo inserire delle stringhe fi
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    #include<string.h>
    #define N 20
    int main()
    {
    char c[N];
    char nuovo[N];
    int i=0,j,y=0;
    int finito=0;
    int tasto=0;
    for(i=0;i<N;i++){
    scanf("%c",&c);}inserisco stringa
    for(j=0;c[j]!=0;j++){
    if(c[j]=='s' && c[j+1]=='h') {//se ho trovato sequenza sh
    nuovo[t]='y';//nuovo e un vettore dove metto la stringa modificata quindi se ho trovato sh in nuovo metto y
    t ++;//incremento indice nuovo
    j++;}//incremento anche indice j perche la lettera dopo sara h e io non devo memorizzarla
    else if(c[j]==c[j+1]){//se invece trovo una doppia
    nuovo[t]=c[j];//metto in nuovo solo un carattere dei due
    t++;
    j++;//incremento anche indice del vettore c perche il carattere dopo sara j e io non devo memorizzarlo
    else{nuovo[y]=c[j];
    y++;}}
Devi accedere o registrarti per scrivere nel forum
2 risposte