Kezdőoldal » Számítástechnika » Programozás » C# Ha egy betű többször van...

C# Ha egy betű többször van meg egy szóban, akkor is csak egyszer írja ki, mert csak egyszer lép be az if-be a foron belül, valami ötlet, hogy miért?

Figyelt kérdés

if (szoveg.IndexOf(tipp) != -1)

{

for (z = 0; z <= szoveg.Length; z++)

{

if (szoveg.IndexOf(tipp) == z)

{

y = y + z;

Console.SetCursorPosition(y, 8);

Console.Write(tipp);

y = 41;

}

}

}



#ciklus #Visual C# #akaszófa
2015. nov. 8. 17:42
 1/9 Tengor ***** válasza:

Mert az IndexOf az első előfordulást adja vissza. Egy második int paraméterrel megmondhatod neki, hogy honnan kezdje a keresést.

[link]

2015. nov. 8. 18:08
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:

Ú hát azt hiszem valami ilyesmi kellene nekem, de segítesz kihámozni nekem belőle, hogy ezt, hogy is kell? Mert nem nagyon sikerül rájönnöm. :S

[link]

2015. nov. 8. 18:50
 3/9 Tengor ***** válasza:
Ahhoz először tudni kellene, hogy mi a feladat.
2015. nov. 8. 19:16
Hasznos számodra ez a válasz?
 4/9 SimkoL ***** válasza:

Valami ilyesmire gondolsz ?

//Console.Write(szoveg); csak a látszat miatt


static void Main(string[] args)

{

string szoveg = "ezt kell kitalálni";

char tipp = 'l';

int y = 1;

Console.SetCursorPosition(y, 8);

Console.Write(szoveg);

if (szoveg.IndexOf(tipp) != -1)

{

y = 1;

for (int z = 0; z < szoveg.Length; z++)

{

if (szoveg[z] == tipp)

{

Console.ForegroundColor = ConsoleColor.Cyan;

Console.SetCursorPosition(y + z, 8);

Console.Write(tipp);

}

}

}

Console.SetCursorPosition(1, 9);

Console.ReadLine();

}

2015. nov. 8. 19:26
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:

Akasztófát próbáltam csinálni.


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading;


namespace Akasztófa

{

class Program

{

static void Main(string[] args)

{

Console.CursorVisible = false;

String szoveg, tipp, rossz;

int y = 1, hiba = 0, z=0, hossz, f=2, x=0;

Console.SetCursorPosition(1, y);

Console.ForegroundColor = ConsoleColor.Cyan;

Console.Write("Írd be a szót, amelyet szertnéd, hogy kitaláljanak: ");


do

{

szoveg = Console.ReadLine();

hossz = szoveg.Length;//Megnézi a szöveg hosszát

if (!szoveg.All(Char.IsLetter))

{

Console.SetCursorPosition(1, f);

Console.Write("Csak betűket tartalmazhat a szó! Írd be újból! ");

f = f + 1; Thread.Sleep(1000);

}


}while (!szoveg.All(Char.IsLetter));


Console.Clear();

y = 41; f = 1; rossz = " ";

Console.SetCursorPosition(30, 1);

Console.Write("Hibás betűk: ");

Console.SetCursorPosition(30, 8);

Console.Write("Jó betűk: ");

do

{

Console.SetCursorPosition(1, f);

Console.Write("Írd be a tipped: ");

tipp = Console.ReadLine();

do

{

while (!tipp.All(Char.IsLetter) || (tipp.Length > 1))

{

f = f + 1;

Console.ForegroundColor = ConsoleColor.Red;

Console.SetCursorPosition(1,f);

Console.Write("Csak EGY betűt adhatsz meg, "); f = f + 1;

Console.SetCursorPosition(1,f); Console.Write(" és CSAK betű lehet! ");

tipp = Console.ReadLine();

f = f + 1;

Console.ForegroundColor = ConsoleColor.Cyan;

}

while (rossz.Contains(tipp))

{

f = f + 1;

Console.ForegroundColor = ConsoleColor.Green;

Console.SetCursorPosition(1,f);

Console.Write("Ezt már beírtad egyszer! {0}", tipp); f = f + 1;

Console.SetCursorPosition(1, f);

Console.Write("Írj be egy másik betűt:");

tipp = Console.ReadLine();

f = f + 1;

Console.ForegroundColor = ConsoleColor.Cyan;

}

rossz = rossz + tipp;

}while(!tipp.All(Char.IsLetter) || (tipp.Length > 1)); //Ha éssel kapcsolom mindkettőnek igaznak kell lennie, különben kilép a ciklusból, ami nem jó..

//Ezért kell a vagy kapcsoló helyette...

f = f + 1; //A sor lentebb menjen

/*----------------------------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------------------------*/

//Ez írja az akasztófát, vagy a jó betűket.

if (szoveg.IndexOf(tipp) != -1)

{

if (x == szoveg.Length)

{

Thread.Sleep(2000);

Console.Clear();

Console.ForegroundColor = ConsoleColor.Red;

Console.SetCursorPosition(20, 10);

Console.Write("A szót sikeresen kitaláltad, a megoldás: {0}", szoveg); //Pirossal kiírja ezt

Thread.Sleep(5000);

Environment.Exit(0);

}


for (z = 0; z <= szoveg.Length; z++)

{

if (szoveg.IndexOf(tipp) == z)

{

y = y + z;

Console.SetCursorPosition(y, 8);

Console.Write(tipp);

y = 41; //x=x+1; majd ezen belülre kell rakni, ha sikerül többször beléptetni a ciklusba..

}

}

x = x + 1;

}

else hiba = hiba + 1;


if (hiba == 1)

{

Console.SetCursorPosition(44,1);

Console.Write(tipp); //Hamis ág

Console.SetCursorPosition(50, 20);

Console.Write("|");

Console.SetCursorPosition(49, 21);

Console.Write("---");

}


if (hiba == 2)

{

Console.SetCursorPosition(46, 1);

Console.Write(tipp);

Console.SetCursorPosition(50, 16); //Hamis ág

Console.Write("__________");

Console.SetCursorPosition(50, 17);

Console.Write("|");

Console.SetCursorPosition(50, 18);

Console.Write("|");

Console.SetCursorPosition(50, 19);

Console.Write("|");

}


if (hiba == 3)

{

Console.SetCursorPosition(48, 1);

Console.Write(tipp);

Console.SetCursorPosition(60, 18);//Hamis ág

Console.Write("|");

Console.SetCursorPosition(60, 19);

Console.Write("O");

}


if (hiba == 4)

{

Console.SetCursorPosition(50, 1);

Console.Write(tipp);

Console.SetCursorPosition(60, 20);//Hamis ág

Console.Write("I");

}


if (hiba == 5)

{

Console.SetCursorPosition(52, 1);

Console.Write(tipp);

Console.SetCursorPosition(59, 20);//Hamis ág

Console.Write("/");

}


if (hiba == 6)

{

Console.SetCursorPosition(54, 1);

Console.Write(tipp);

Console.SetCursorPosition(61, 20);//Hamis ág

Console.Write(")");

}


if (hiba == 7)

{

Console.SetCursorPosition(56, 1);

Console.Write(tipp);

Console.SetCursorPosition(59, 21);//Hamis ág

Console.Write("/");

}


if (hiba == 8)

{

Console.SetCursorPosition(58, 1);

Console.Write(tipp);

Console.SetCursorPosition(61, 21);//Hamis ág

Console.Write(")");

}

} while (hiba != 8);


Thread.Sleep(3000);//Ha eddíg nem sikerül kitalálni, akkor

Console.Clear(); //Képet töröl

Console.ForegroundColor = ConsoleColor.Red;

Console.SetCursorPosition(23, 10);

Console.Write("A szót nem sikerült kitalálni!"); //Pirossal kiírja ezt

Thread.Sleep(5000);

Environment.Exit(0);//És kilép. Ehelyett majd lehet próbálok egy olyat, hogy az elejére menjen és megkérdezze, hogy akar-e mégegyet játszani.

}//static vége

}

}

Eddíg van meg már csak az kéne, hogy ha többször szerepel a betű a szóban, akkor oda pozícionálva, ahol kell kiírná a betűt akár többször is.

2015. nov. 8. 19:26
 6/9 A kérdező kommentje:
A megjegyzéseket ne nézd, az csak nekem van,hogy tanuljak a hibákból.. xD
2015. nov. 8. 19:28
 7/9 A kérdező kommentje:
Ha Char lesz a tipp akkor jó, és azt tudom, de akkor meg nemtudom úgy bekérni, hogy csak az betűt tartalmazzon, és semmi mást ne(speciális karakterek, szám)... Ha azt letudjátok nekem írni, hogy, hogy kell, akkor nekem az is jó.. Bár ha lehet stringel is akkor azt is szeretném tudni, hogy megtanuljam :D
2015. nov. 8. 19:45
 8/9 SimkoL ***** válasza:

static void Main(string[] args)

{

string szoveg = "ezt kell kitalálni";

char tipp;

int y = 1;

do

{

Console.SetCursorPosition(y, 1);

Console.Write("Kérem a tippet: ");

tipp = Console.ReadKey().KeyChar;

// Ha nem betű azonnal eldobjuk

if (!Char.IsLetter(tipp))

{

Console.SetCursorPosition(y, 1);

Console.Write("Kérem a tippet: "); //Ide több szóköz kell törölni a betűt

}

} while (!Char.IsLetter(tipp));

Console.SetCursorPosition(y, 8);

Console.Write(szoveg);

if (szoveg.IndexOf(tipp) != -1)

{

y = 1;

for (int z = 0; z < szoveg.Length; z++)

{

if (szoveg[z] == tipp)

{

Console.ForegroundColor = ConsoleColor.Cyan;

Console.SetCursorPosition(y + z, 8);

Console.Write(tipp);

}

}

}

Console.SetCursorPosition(1, 9);

Console.ReadLine();

}

2015. nov. 8. 20:01
Hasznos számodra ez a válasz?
 9/9 A kérdező kommentje:
Oké köszi! :D
2015. nov. 8. 20:13

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!