2015-11-11 2 views
0

В настоящее время я работаю с файлами PLY. Я могу загрузить его и сохранить в строковый массив. Затем я должен искать ключевые слова. Например, где-то в тексте находится строка «вершина элемента 8». Я могу найти строку, но как получить номер от нее?string search C++

std::fstream cube2; 
cube2.open(argv[1],std::fstream::in | std::fstream::out | std::fstream::app); 

string line; 
string line2[1000] = {}; 
int index = 0; 

while (getline(cube2,line)) 
{   
    line2[index] = line; 
    index++; 
} 
cube2.close(); 
+0

Если вы используете 'C++ 11', вы можете использовать' 'library – fghj

ответ

0

Я предполагаю, что «число» означает, что вы хотите найти индекс этой подстроки внутри вашей исходной строки?

Использование:

#include <string.h> 

    std::string substr = "element vertex 8"; 
    size_t index_of_substring = line2.find(substr); 

    if (index_of_substring!=std::string::npos) 
     std::cout << "Found my substring " << substr << " at index " << index_of_substring" << '\n'; 

Предполагая, что line2 является строка для поиска; find Функция библиотеки std::string возвращает позицию первого символа подстроки, которая была найдена в исходной строке, которая была обыскана.

+0

Спасибо! Могу ли я индексировать подстроку в массиве напрямую, или я использую другую строку forit? strin MyArray [] = {}; команда: cout << MyArray [0], возьмет первый массив, но я хочу индексировать первый символ этого массива. – ToKra

+0

Ваш массив имеет тип 'string', поэтому он должен работать напрямую. Функция 'find' является функцией класса' string', поэтому, если ваш тип данных является строкой, независимо от того, инициализирован ли он как массив или нет, он все равно должен работать. См. [Здесь] (http://www.cplusplus.com/reference/string/string/find/) для получения дополнительной информации. Является ли 'MyArray' массивом массивов? Если so 'MyArray [0]' вернет вам первый массив в этом массиве. Доступ к любым элементам в массиве _this_ одинаковый: 'MyArray [0] [0]' вернет вам первый символ в первом массиве 'MyArray'. – Shiri