2016-01-16 1 views
-1

Здравствуйте, я пытаюсь найти способ найти строку символов в двух символах. Как мне это сделать в C++?Как мне найти строку в двух символах на C++?

sdfgkjr$joeisawesome$sdfeids -> joeisawesome 

EDIT: Другой ответ ищет, если строка существует внутри строки. Я ищу строку в двух символах и выводя жало в пределах двух символов. Спасибо, что посмотрели PoX.

+1

Может быть с помощью [ 'find'] (http://en.cppreference.com/w/cpp/string/basic_string/find)? –

+0

Возможный дубликат [Как найти подстроку из строки?] (Http://stackoverflow.com/questions/13195353/how-to-find-substring-from-string) – PoX

+0

Вы хотите, чтобы решение было само по себе, или вы пытаетесь улучшить свои навыки? Вы предпочли бы использовать 'find' и получить ответ или написать свою собственную функцию в качестве упражнения? – Beta

ответ

1

Хорошо, поэтому, когда вы говорите два символа, я предполагаю, что вы имеете в виду разделители. В этом случае вам нужно будет использовать String.find(), чтобы найти положение разделителей. После нахождения позиций разделителей вы можете использовать String.substr (index1, index2-index1) для возврата подстроки.

Пример:

#include <iostream> 
#include <string> 

int main() 
{ 
    std::size_t index1,index2; 
    std::string myString = "sdfgkjr$joeisawesome$sdfeids"; 
    std::string sub= ""; 
    index1 = myString.find('$'); 

    //string::npos is -1 if you are unaware 

    if(index1!=std::string::npos&& index1<myString.length()-1) 
     index2=myString.find('$',index1+1); 
    if(index2!=std::string::npos) 
    { 
     sub = myString.substr(index1+1,index2-index1); 
    } 
    std::cout<<sub; //outputs joeisawesome 
} 
+0

Пожалуйста, дайте мне знать, если я не понимаю ваш вопрос, и это не то, что вы ищете. –

+0

Большое вам спасибо! Это именно то, что я пытался сделать. По какой-то причине у него есть $ в начале, но не biggy. – TheDT

+0

Нет проблем - я рад помочь. Я исправил код. Конечным вызовом функции должен быть myString.substr (index + 1, index2-index1). Теперь он выведет правильное значение. –

Смежные вопросы