Я хочу найти индекс «-» в строке «book-Buch». Что я должен делать? Я не должен использовать эту функцию или любые другие. Есть идеи?
int indexOf(int ch, int fromIndex)
Вы создаете массив string
и сравниваете w[i]
(строку) с x
(символом). Это не сработает.
Несвязанные: вы можете пожалеть int i, j, wc, uw, xx, ii, jj;
Если это переменные индекса цикла, определите их в цикле, который их использует, чтобы А) минимизировать их область действия и Б) сохранить определение в цикле для облегчения чтения. Если они не являются переменными индекса цикла, они, безусловно, похожи на них и должны получить более описательные имена, чтобы избежать путаницы. Кроме того, не используйте повторно имена переменных в одной и той же области видимости и дважды подумайте, прежде чем повторно использовать имена переменных, даже если они не находятся в той же области. Вы же не хотите запутать людей. Сбитые с толку люди делают ошибки.
#include <iostream>
#include <string>
int main() {
std::string word("book-Buch");
// The easy way
std::cout << word.find("-", 0) << '\n';
// The manual way
for (std::size_t i = 0; i < word.length(); ++i) {
if (word[i] == '-') {
std::cout << i << '\n';
}
}
}
Если вы просто хотите найти индекс, в котором встречается определенный символ, вам просто нужно посмотреть на каждый символ и проверить, является ли он тем, который вам нужен.
Строку можно рассматривать как массив символов. Неизвестно, действительно ли вам нужен массив строковых объектов или вы просто запутались.
Другие вопросы, на которые необходимо ответить: вам нужно найти все вхождения или только первое? Вы читаете слова из файла? Вы не ясно объясняете, как файл вступает в игру.
Редактировал ребята. Теперь это понятно. Ждем Вас :)
Мой ответ не требует никаких изменений.
Хотите найти первый
-
в файле... или что значит "Я работаю над файлами"? Пожалуйста, сделайте минимально воспроизводимый пример.