C ++ указатели и строковые векторы

//Add words from the file to the vector
while (inputFile >> word) {
listWords.push_back(word);
wordCount +=1;  //Count the words
}

for (int i = 0; i < listWords.size(); i++) {
char *p;
p = strchr(listWords.at(i), 'c');
if ( p != NULL ) {
cout << "null";
}
}

Приведенный здесь код добавляет довольно большой текстовый файл слов к тому, что я объявил в виде строки vector listWords, Я хотел бы использовать strchr и различные другие функции Cstring, чтобы избавиться от отдельных слов с определенными буквами и символами. Я сталкиваюсь с ошибкой, когда пытаюсь сделать это, говоря: «Нет соответствующего вызова функции для strchrЯ уже включил библиотеки <vector> <string> <cstring> <fstream>, Я уверен, что моя ошибка лежит между указателями.

char *strchr(const char *str, int ch)

Любые советы, что я должен сделать здесь, чтобы заставить работать strchr?

-1

Решение

Лучше

for (int i = 0; i < listWords.size(); i++) {
const auto p = listWords.at(i).find('c');
if ( p != std::string::npos ) {
cout << "null";
}
}

Хуже

for (int i = 0; i < listWords.size(); i++) {
const char *p = strchr(listWords.at(i).c_str(), 'c');
if ( p != NULL ) {
cout << "null";
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]