PDA

Visualizza la versione completa : AIUTO per programmino c/c++


RikyToro
03-01-2009, 13:50
chiedo un aiuto su un programmino..in fase di compilazione mi segnala un errore dove ho messo il punto di domanda..questo il testo e il codice che ho scritto..se riuscite a capire dove ho sbagliato mi fate un piacere..grazie

2) (a) Sia S il tipo di una struttura dati struct costituita da un campo c1 di tipo stringa (dim.
max. 1000) ed un campo c2 di tipo intero contenente la lunghezza della stringa in c1. Scrivere
una funzione void di nome aggiorna che, presi come suoi parametri, una struttura A di tipo
S ed una stringa s, modifica la struttura A concatenando la stringa s alla stringa contenuta nel
campo c1 di A, ed aggiorna il campo c2 di A sommandovi la lunghezza della stringa s.
(b) Realizzare anche un programma principale di prova che legge da standard input due
stringhe, di lunghezza massima 80, terminate da "a capo", memorizza la prima stringa insieme
alla sua lunghezza in una struttura di tipo S, e quindi richiama la funzione aggiorna
passandole la struttura creata e la seconda stringa letta. Il programma termina stampando su
standard output i valori dei campi c1 e c2 della struttura passata alla aggiorna.
N.B. Utilizzare soltanto stringhe tipo C ( = array di caratteri …).

#include <iostream>
#include <cstring>
using namespace std;
struct S{char C1[1000];
int C2;//lunghezza della stringa in C1
};
void aggiorna(S &A,char s[])
{int x;
x=strlen(s);
A.C1=strcat(A.C1,s);
A.C2=A.C2+x;
return;
}
int main()
{S B;
char c[80];
char d[80];
int x,y;
cout<<"inserisci la prima stringa terminata da a capo"<<endl;
cin.getline(c,80);
x=strlen(c);
strcpy(B.C1,c);
B.C2=x;
cout<<"inserisci la seconda stringa terminata da a capo"<<endl;
cin.getline(d,80);
y=strlen(d);
aggiorna(B,d);
cout<<B.C1<<endl;
cout<<B.C2;
return 0;
}

sotoli
03-01-2009, 14:57
Non devi scrivere:

A.C1=strcat(A.C1,s);

Basta che tu scriva:

strcat(A.C1,s);
Dopo questa istruzione, in A.C1 c' gi la stringa concatenata.

RikyToro
03-01-2009, 18:52
grazie mille..ora va!

Loading