Prikaz jedne poruke
Stara 2.6.2013, 14:50   #227
Lucic Nemanja
Starosedelac
 
Član od: 2.12.2005.
Lokacija: Beograd
Poruke: 1.241
Zahvalnice: 65
Zahvaljeno 76 puta na 49 poruka
Slanje poruke preko Skypea korisniku Lucic Nemanja
Određen forumom Re: How to... C++

Citat:
Sinisa Cubrilo kaže: Pregled poruke
//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 .
Lucic Nemanja je offline   Odgovor sa citatom ove poruke