[C#] Arrays #15 - Разглабяне на string дума на букви


2

Та, въпроса ми е, как да отделя символите от един string елемент, за да работя с тях по отделно? Първо се сетих за % делението, но явно в C# то не е валидно за работа със стрингове.

 

Работя по тази задача, чиято условие като, че ли не беше достатъчно объркващо, че трябваше solution-а напълно да ме сбърка. Това което разбрах, или поне това което мисля да направя, е да направя масив с всички латински букви и да при въвеждането на дума да заменя буквите с индексите от масива...

15.   Write a program, which creates an array containing all Latin letters. The user inputs a word from the console and as result the program prints to the console the indices of the letters from the word.

Solution:

15.   We can solve this problem with two nested for-loops (one for the words and one for the letters of the current word). There is a solution without using an array: we can calculate the index of a given uppercase Latin letter ch using the expression: (int) ch – (int) 'A'.




Отговори



1
Ще ти дам само подсказка. Всеки string е масив от char елементи, като можеш да достъпваш всеки char, все едно е масив, но не можеш да ги променяш. Тоест ако имаш string word = "someWord", можеш да завъртиш for цикъл от 0 до дължината на масива - 1 и така чрез индекса, можеш да достъпиш всяка буква (например ако i = 3, това е буквата "е")

от Hristo.B (3885 точки)


0
Можеш да достъпваш символите на един стринг с индексатор. Ако имаш string str = "word", то str[0] = 'w'. Гледай на стринга като масив от чарове. Идеята тук е да сравняваш символи, като имай предвид, че 'a' != 'A'. Можеш да използваш метода .ToLower() или .ToUpper(), за да се подсигуриш.

от stinger907 (307 точки)


0
Да, бях се сетил, че string-а е масив от символи... но не бях обърнал внимание на последното - символи. Присвоявах чрез този метод word[0] в друга стринг променлива, но не бях обърнал внимание, че другата променлива трябва да е char, а не string. Благодаря!

от SexPistols (786 точки)