Witam.
Metoda FindCharacter ma przeszukiwać łańcuch znaków w poszukiwaniu wybranego (w tym wypadku "x"). Jeśli go znajdzie zwróci jego indeks, w przeciwnym razie zwróci wartość -1.
Problem w tym, że ten przykład zawsze zwraca 0.
Możecie mi powiedzieć co jest źle?
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
static string lancuch;
static void Main(string[] args)
{
Console.Write("Podaj lancuch zawierajacy 'x': ");
lancuch = Console.ReadLine();
Console.WriteLine("Index znaku: {0}", FindCharacter('x'));
Console.ReadKey(true);
}
static int FindCharacter(char ch)
{
for (int i = 0; i < lancuch.Length; i++)
{
if (lancuch[i] == ch)
{
string s = new string(ch, 0);
return lancuch.IndexOf(s);
}
}
return -1;
}
}
}
Co do tej części:
string s = new string(ch, 0);
Tu ma być konwersja z char na string, znalazłem gdzieś że trzeba użyć:
new string(0, ch);
Ale to nie działało, VS podpowiedziało że najbliższa poprawna funkcja ma postać jaka jest w kodzie więc taką dałem. Najbardziej podejrzewam o błąd właśnie tę część.
EDIT:
Ok, już poradziłem sobie. Wystarczyło napisać
string s = ch.ToString();
oraz
return sCommand.IndexOf(s) + 1;
I działa.
Poza tym: czy jest jakaś wbudowana w c# metoda szukająca znaku w łańcuchu?
Pozdrawiam.