| Frank51 a întrebat:

Cum sa compar 2 stringuri fara strcmp in C++?

32 răspunsuri:
| AC4S4 a răspuns:

Iei caracter cu caracter si compari.
Exact asa cum compari doi vectori de numere intregi, asa compari si doua stringuri.

suntserios
| suntserios a răspuns (pentru AC4S4):

Confunzi stringul din c++ cu sirul de caractere din C.

suntserios
| suntserios a răspuns:

Strcmp e functie de C, nici nu prea ai de ce sa o folosesti in C++.

In c++ ai metoda compare

http://www.cplusplus.com/reference/string/string/compare/

Sau poti foarte bine sa folosesti opreatorii ==,!= care sunt supraincarcati in C++ pentru comparatia de string uri

| Frank51 explică (pentru suntserios):

Well, eu am facut un if (string1 == string2)
printf("Sunt la fel");
else printf("Nu sunt la fel")

dar tot nu a fost bine si nu inteleg de ce.

suntserios
| suntserios a răspuns (pentru Frank51):

Daca postezi undeva codul intreg o sa iti zic ce nu e bine... din atat nu imi pot da seama.

incearca cu

https://pastebin.com/

ca TPU nu o sa iti dea voie sa postezi cod

| Frank51 explică (pentru suntserios):

Nu am codul ca am scris la examen asa si nu am luat. Profa a zis ca trebuia sa compar lungimea lor sau dimensiunea lor din memorie habar n-am, mie imi parea cam imposibil.

anonim_4396
| anonim_4396 a răspuns (pentru Frank51):

E clar laughing Ai dat de un dinozaur de profesor care nu stie tehnologia de azi.
Treaba aia de totusi a zis-o se refera ca daca lungimile sunt diferite, n-are rost sa mai continui algoritmul de comparatie ci sa returnezi imediat false. Ca doua stringuri sa fie identice, si lungimea lor trebuie sa fie automat identica.

suntserios
| suntserios a răspuns (pentru Frank51):

Greu sa îți răspund când nu știu nici cerință nici codul despre care vorbim.

| Frank51 explică (pentru suntserios):

Define a function that compares two strings. If they are equal it returns zero, otherwise it returns the difference between the first two non-mathing characters. 3 puncte.
Define a function that finds the first occurance of a specific character in a given string. It returns a pointer in the occurence in the string, or zero if it's not found. Si mai erau doua si mai grele.

Doar la prima am incercat sa fac si nu am reusit, dupa cum am mai spus si in alta intrebare, profa si-a cam batut joc de noi, si eu desi am invata acasa foarte mult, nu am reusit nici de 5.

| sierra1 a răspuns (pentru suntserios):

"Strcmp e functie de C, nici nu prea ai de ce sa o folosesti in C++"

și totuși...

| sierra1 a răspuns (pentru Frank51):

Recitește ce zice acasa ( AC4S4 ) că zice bine

suntserios
| suntserios a răspuns (pentru sierra1):

Și totuși ce?

| sierra1 a răspuns (pentru suntserios):

"merge" și incă FOARTE BINE

suntserios
| suntserios a răspuns (pentru Frank51):

Cerință e deja departe de întrebarea ta. Caz în care cam trebui sa verifici caracterele stringului intrele ele... Profa ta avea dreptate probabil în ceea ce spunea.

suntserios
| suntserios a răspuns (pentru sierra1):

Merge, nu am zis ca nu merge. Dar omul a întrebat clar 2 string uri in CPP. De ce sa amestecam oalele?

| sierra1 a răspuns (pentru suntserios):

Ai zis : "Strcmp e functie de C, nici nu prea ai de ce sa o folosesti in C++"

imi pare că virgulă calci pe cioburi

| AC4S4 a răspuns (pentru suntserios):

Se poate. In liceu a fost o amestecatura de C si C++.

Dupa ce am mai verificat, ai dreptate. Se poate totusi si sa iei caracter cu caracter, dar nu pentru asta sunt stringurile.

O functie de tipul asta functioneaza:

bool compareStrings(string a, string b)
{
if (a==b)
return true;
return false;
}

suntserios
| suntserios a răspuns (pentru sierra1):

Exact, am zis ca nu ai de ce sa o folosești în c++, nu am zis ca nu merge. Altceva concret ai de zis?

| Frank51 explică (pentru suntserios):

Cum sa fie departe? Am zis clar, comparare 2 stringuri, eu le-am comparat foarte simplu pentru ca asa am stiut, ea avea pretentia sa fac ceva gen ca la nasa. Oricum ne-am mobilizat toti si mergem la tutore sa vorbim, nu se mai poate, am ramas jumatate cu restanta.

suntserios
| suntserios a răspuns (pentru Frank51):

Aici e mai mult decât o simpla comparație între string uri

otherwise it returns the difference between the first two non-mathing characters.

| Frank51 explică (pentru suntserios):

Daca imi dadea sa afisez o matrice si sa ii arat maximul de pe fiecare linie sau coloana mi se parea floare la ureche, sau sa inmultesc doua matrici, dar chestiile pe care ni le-au dat sunt foooarte ciudate si nu am facut nici-una de genul asta in laboratoare, de asta sunt frustrat. Anyways, mersi pentru timpul pe care l-ai pierdut lasand mesaje aici.

| sierra1 a răspuns (pentru suntserios):

" suntserios a răspuns (pentru AC4S4):
Confunzi stringul din c++ cu sirul de caractere din C"

repet : omul zice BINE!

| sierra1 a răspuns (pentru Frank51):

"otherwise it returns the difference between the first two non-mathing characters."

cum traduci asta?

suntserios
| suntserios a răspuns (pentru sierra1):

Ești total incoerent. M ai contrazis cu funcția de C acum o dai pe răspunsul altuia. Nu, omul nu zicea bine în contextul in trebarii. Întrebarea era cum compari 2 string uri in C++. Și nu asa se face.

Nu pricep de ce dorința asta a ta de a te învârti incoerent în jurul unor răspunsuri. Nu e prima data când o faci. E doar metoda ta de a te scoate când nu știi ce sa scrii?

| sierra1 a răspuns (pentru suntserios):

Clar că nu stăpânești domeniul și vrei să ieși la suprafață dar calci pe cioburile oalelor sparte de tine. Problema e că nu-ți dai seama de asta. Dar in fine, de ce ți-aș spune eu că greșești?

"Altceva concret ai de zis? Ești total incoerent. " - asta e tot ce ai de zis?

suntserios
| suntserios a răspuns (pentru sierra1):

Wtf, ești incoerent in timp ce vrei sa zici ca nu ești incoerent. Explica mi cu punct și virgula ce am greșit eu aici, deși ma doare capul când port discuții cu tine

| sierra1 a răspuns (pentru suntserios):

Cum spuneam: nu stăpânești domeniul și in fine, de ce ți-aș spune eu că greșești?

surprinzători ce iute ești la etichetat (citatele sunt mai sus)

apropo de incoerență (alt domeniu in care calci pe cioburi):
"Daca tu ai discuri mici si placute proaste, de cand apesi tu frana pana se blocheaza (in caz ca nu ai abs) timpul e mai mare decat daca ai avea discuri mai mari si placute mai bune. "

suntserios
| suntserios a răspuns (pentru sierra1):

OK, deci doar comentezi aiurea. Nu ai absolut nimic de zis, probabil nici nu ai noțiuni de programare ca nu vad sa fi dat vreun răspuns concret la întrebarea asta. Ma rog fix cum anticipat te învârti în jurul cozii ca să... nimic. Ești praf frate, nu te mai baga în discuții în care nu ești pe subiect. Dai reply uri aiurea fără sa fii în stare sa spui de ce le dai. Deci pentru ultima oara. Ce am greșit în răspunsurile date, ai o ultima ocazie sa explici cu subiect și predicat, clar și la obiect ca să nu te faci complet de rahat mânjit cu cacao

| sierra1 a răspuns (pentru suntserios):

"Ești praf frate"
"te faci complet de rahat"
"Dai reply uri aiurea"
ce de etichete! Ce părere bună ai despre tine, arbitru genial!

"Deci pentru ultima oara. " - ultimatum că ce?

spuneam și nu mai repet: Ai impresia că ești un geniu, dar calci in străchini. Problema e că nu-ți dai seama de asta. (re)Citește-ți replicile, poate te prinzi. Dar in fine, (a 3 a oară) de ce ți-aș spune eu că și ce greșești?

suntserios
| suntserios a răspuns (pentru sierra1):

Loool, realizezi ca era simplu sa dovedești ca ai dreptate explicând ce am greșit.
Tu demonstrai ca ai dreptate și ca eu vorbesc tâmpenii.
Dar na, neavând nimic de explicat doar te ai făcut de rahat. Și nu te ai mulțumit sa fii plin de rahat, l ai mai și pudrat cu cacao.

Întrebări similare