Citat:
Sinisa Cubrilo kaže:
//Napisati funkciju koja kao parametre ima dva niza znakova i kopira prvi u drugi
Kod:
#include <string.h>
#include <iostream>
#include "stdafx.h"
#define MAX 50
void kopiranje (char prvi[], char drugi[])
{
int i=0;
while(prvi[i])
{
drugi[i]=prvi[i];
i++;
}
drugi[i]='\0';
}
void main()
{
int i=0, c;
char prvi[MAX], drugi [MAX];
printf("Unesite niz karaktera:");
c=getchar();
while(c!=EOF && i<MAX){
prvi[i]=c;
i++;
c=getchar();
}
prvi[i]='\0';
kopiranje(prvi,drugi);
printf("\nprvi: %s\n\ndrugi: %s", prvi, drugi);
system("pause");
}
Kada pokrenem program, unesem niz karaktera ali mi ne kopira jedan u drugi, vec mi prikaze isto ono sto sam i uneo. Gde je greska?
|
U uslovu za unos ti treba c != '\n', a ne EOF. Problem je što ti kada unosiš niz znakova na standardnom ulazu između ostalog pritisneš enter da bi mu naznačio da završavaš sa unosom. I taj enter se pamti kao i svako drugo slovo koje napišeš, i to kao simbol za novi red. Recimo da uneseš niz znakova "Neki string", on će ti biti u memoriji zapisan kao "Neki string\n". Dakle koristiš novi red kao indikator kraja niza
.