» »

Leksikografska primerjava dveh stringov? C++

Leksikografska primerjava dveh stringov? C++

TheHijacker ::

Ima mogoče kdo idejo kako lahko dva stringa leksikografsko (po abecedi) primerjaš med seboj in kaj bi moral dobit kot rezultat?

Edino kar meni trenutno pade na pamet je da se ju primerja bo velikosti. Kateri izmed nizov je daljši (ima več črk), samo mislim, da to ni to.
http://www.google.si

sid_dabster ::

String iz C++ standard library ima cel kup overloadanih metod compare(...) za leksikografsko primerjanje stringov, in sicer dveh stringov tipa std::string, std::string z navadnim C stringov, podanim s char*, za primerjanje podstringa s podanim stringom...

Poglej STL help pod basic_string.

Lahko pa se zmeraj uporabis strcmp, kamor podas iteratorja begin() obeh std::stringov oz. dva "navadna C-stringa" 8-)

Rezultat pa je zmeraj celo stevilo, ki je 0, ce sta stringa enaka, sicer pa manjsi ali vecji od 0, odvisno od tega, kateri string je pred drugim po abecednem redu.
Fallen beyond all grace deeper and deeper
The sound of her own blood dripping
Like sacred tears from a bleeding rose...( Embraced, Within)

Zgodovina sprememb…

Vesoljc ::

tkole?

a, ab, acd, baa, blak, drekec, duh,...
Abnormal behavior of abnormal brain makes me normal...

TheHijacker ::

Aha. V bistvu je to primerjanje po abecedi.

Kako pa bi to rešil v C-ju brez uporabe string funkcij kot so npr. strcmp?
http://www.google.si

TheHijacker ::

Na koncu sem rešil takole in dela :)).

int primerjaj(char *niz1,char *niz2)
{
	int x = 0;

	while (niz1[x] == niz2[x] && niz1[x] != '\0' && niz2[x] != '\0')
	{
		x++;
	}
	if (niz1[x] > niz2[x])
	{
		printf("Prvi je večji");
		return 1;
	}
	else if (niz1[x] < niz2[x])
	{
		printf("Prvi je manjši");
		return -1;
	}
	else
	{
		printf("Oba sta enaka");
		return 0;
	}
}

void main()
{
	char niz1[200];
	char niz2[200];
	int kol;

	printf("Vnesi prvi niz: ");
	scanf("%s",niz1);
	printf("Vnesi drugi niz: ");
	scanf("%s",niz2);

	primerjaj(niz1,niz2);
}

Hvala!
http://www.google.si

Zgodovina sprememb…

  • spremenil: Vesoljc ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Pomoč pri Javi

Oddelek: Programiranje
11808 (608) Spura
»

asm - vnos stevilk s tipkovnice

Oddelek: Programiranje
51281 (1137) scarymovie
»

Pomoc v C-ju

Oddelek: Programiranje
51305 (1217) rfmw
»

[C] Narascajoce sortiranje linearnega seznama

Oddelek: Programiranje
71862 (1751) Jebiveter
»

problem with c/c++ like program

Oddelek: Programiranje
71162 (987) OwcA

Več podobnih tem