Форум программистов, компьютерный форум CyberForum.ru

Удалить символы из строки - C++

Восстановить пароль Регистрация
 
 
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
26.03.2013, 02:54     Удалить символы из строки #1
Здравствуйте. Имею строку models/v_m249.mdll

Мне нужно получить с неё weapon_m249

то есть заменить models/v на weapon

и удалить .mdll
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
veverix
39 / 39 / 2
Регистрация: 14.09.2012
Сообщений: 85
26.03.2013, 04:01     Удалить символы из строки #2
думаю ПКМ -> Переименовать (если это файл)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2013, 04:14     Удалить символы из строки #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
 
int main()
{
string str =  "models/v_m249.mdll";
cout << str << endl;
    
str.erase(0, 8);
str.erase(str.size() - 5, 5);
str = "weapon" + str;
    
cout << str << endl;
    
system("pause");
return 0;
}
Миниатюры
Удалить символы из строки  
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
26.03.2013, 15:51  [ТС]     Удалить символы из строки #4
Спасибо. Подскажите еще пожалуйста функцию,которая проверяет определенное кол-во строк и если находит,true

То есть у меня есть массив строк.

Есть моя строка.

Мне надо в этом массиве найти совпадение,если есть соответствие хотя бы 5 строк.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,920
Записей в блоге: 2
Завершенные тесты: 1
26.03.2013, 16:02     Удалить символы из строки #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
#include <algorithm>
 
 
bool foo(const std::vector<std::string> & vec,const std::string & findstr){
    return std::count(vec.begin(),vec.end(),findstr)>4;
}
 
int main(){
    std::vector<std::string> vec;
    vec.push_back("my string");
    vec.push_back("my strings");
    vec.push_back("my string");
    vec.push_back("my stringd");
    vec.push_back("my stringd");
    vec.push_back("my string");
    vec.push_back("my string");
    vec.push_back("my strg");
    vec.push_back("my string");
    std::cout<<std::boolalpha<<foo(vec,"My string")<<std::endl;
    std::cout<<std::boolalpha<<foo(vec,"my string")<<std::endl;
}
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
26.03.2013, 16:07  [ТС]     Удалить символы из строки #6
Что-то тяжелова-то.

Вы бы не могли показать на этом примере ?

Массив:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
char *WeaponNames[CSW_P90 + 1] = 
{
    "", // 0
    "weapon_p228"// CSW_P228
    "", // 2
    "weapon_scout", // 3
    "weapon_hegrenade", // CSW_HEGRENADE
    "weapon_xm1014",    
    "weapon_c4",    
    "weapon_mac10",
    "weapon_aug",   
    "weapon_smokegrenade",  
    "weapon_elite", 
    "weapon_fiveseven", 
    "weapon_ump45", 
    "weapon_sg550",
    "weapon_galil", 
    "weapon_famas", 
    "weapon_usp",   
    "weapon_glock18",   
    "weapon_awp",   
    "weapon_mp5navy",   
    "weapon_m249",
    "weapon_m3",    
    "weapon_m4a1",  
    "weapon_tmp",   
    "weapon_g3sg1", 
    "weapon_flashbang", 
    "weapon_deagle",    
    "weapon_sg552",
    "weapon_ak47",  
    "weapon_knife", 
    "weapon_p90"
};
Будет строка models/v_m249.mdll

Пройдусь циклом и если обнаружит 5 одинаковых символов,то true
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,920
Записей в блоге: 2
Завершенные тесты: 1
26.03.2013, 16:25     Удалить символы из строки #7
Цитата Сообщение от pEntity Посмотреть сообщение
если обнаружит 5 одинаковых символов
Цитата Сообщение от pEntity Посмотреть сообщение
есть соответствие хотя бы 5 строк
Непонятка
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
26.03.2013, 16:30  [ТС]     Удалить символы из строки #8
символов
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2013, 19:43     Удалить символы из строки #9
Цитата Сообщение от pEntity Посмотреть сообщение
Будет строка models/v_m249.mdll
Из этой строки, что нужно искать? _m249 ?
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
26.03.2013, 19:45  [ТС]     Удалить символы из строки #10
Цитата Сообщение от alsav22 Посмотреть сообщение
Из этой строки, что нужно искать? _m249 ?
Получается так )

Мне просто нужно найти эту строку и записать её int индекс,под каким номером она в массиве.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2013, 19:49     Удалить символы из строки #11
Цитата Сообщение от pEntity Посмотреть сообщение
Мне просто нужно найти эту строку
Эту: models/v_m249.mdll ? Или эту: weapon_m249 ? Или строку, которая включает это: _m249 ?
Croessmah
26.03.2013, 20:32
  #12

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Эту: models/v_m249.mdll ? Или эту: weapon_m249 ? Или строку, которая включает это: _m249 ?
читы к Counter-Strike пишет человек
Какая необходима книга ?

pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
26.03.2013, 20:46  [ТС]     Удалить символы из строки #13
Почему сразу же читы ? Просто собираю свой сервер + хочу использовать возможности движка.

Добавлено через 2 минуты
У меня есть строка models/v_m249.mdll

В массиве предложенном мною надо найти найти подобное. То есть в массиве если из models/v_m249.mdll найдет совпадающие буквы,true

Я представляю как искать как-то на совпадение 4 буквы..



Щас еще сам попробую,получиться,напишу ответ.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2013, 20:50     Удалить символы из строки #14
Цитата Сообщение от pEntity Посмотреть сообщение
В массиве предложенном мною надо найти найти подобное.
Вопрос из 11 поста остаётся... Подобное - это очень расплывчато, для конкретного кода.
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
26.03.2013, 20:58  [ТС]     Удалить символы из строки #15
Мне надо в массиве WeaponNames найти строку weapon_m249 с помощью строки szModels

По сути пройдусь циклом по всему массиву,а далее какая мне нужна функция? Явно не stricmp,так как она будет проверять просто две строки без учета регистра,а мне как бы надо найти совпадение хотя бы 4 букв.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
    const char *szModels = "models/v_m249.mdll";
    
    char *WeaponNames[31] = 
    {
        "", // 0
        "weapon_p228",  // CSW_P228
        "", // 2
        "weapon_scout", // 3
        "weapon_hegrenade", // CSW_HEGRENADE
        "weapon_xm1014",    
        "weapon_c4",    
        "weapon_mac10",
        "weapon_aug",   
        "weapon_smokegrenade",  
        "weapon_elite", 
        "weapon_fiveseven", 
        "weapon_ump45", 
        "weapon_sg550",
        "weapon_galil", 
        "weapon_famas", 
        "weapon_usp",   
        "weapon_glock18",   
        "weapon_awp",   
        "weapon_mp5navy",   
        "weapon_m249",
        "weapon_m3",    
        "weapon_m4a1",  
        "weapon_tmp",   
        "weapon_g3sg1", 
        "weapon_flashbang", 
        "weapon_deagle",    
        "weapon_sg552",
        "weapon_ak47",  
        "weapon_knife", 
        "weapon_p90"
    };
 
    #define MAX_WEAPONS 31
 
    signed int iWeaponIndex = NULL;
    signed int iWeapon = NULL;
 
 
    for( iWeapon = 1; iWeapon < MAX_WEAPONS ; iWeapon++)
    {
        if( iWeapon == 2 )
            continue;
 
        if( stricmp( WeaponNames[ iWeapon ], szModels ) )
        {
            iWeaponIndex = iWeapon;
            break;
        }
    }
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2013, 21:33     Удалить символы из строки #16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
 
int main()
{
 char *WeaponNames[] = 
 {
    "", // 0
    "weapon_p228",  // CSW_P228
    "", // 2
    "weapon_scout", // 3
    "weapon_hegrenade", // CSW_HEGRENADE
    "weapon_xm1014",    
    "weapon_c4",    
    "weapon_mac10",
    "weapon_aug",   
    "weapon_smokegrenade",  
    "weapon_elite", 
    "weapon_fiveseven", 
    "weapon_ump45", 
    "weapon_sg550",
    "weapon_galil", 
    "weapon_famas", 
    "weapon_usp",   
    "weapon_glock18",   
    "weapon_awp",   
    "weapon_mp5navy",   
    "weapon_m249",
    "weapon_m3",    
    "weapon_m4a1",  
    "weapon_tmp",   
    "weapon_g3sg1", 
    "weapon_flashbang", 
    "weapon_deagle",    
    "weapon_sg552",
    "weapon_ak47",  
    "weapon_knife", 
    "weapon_p90"
 };
        string str = "weapon_m249";
        int i;
        for (i = 0; i < 31; ++i)
        {
            if (WeaponNames[i] == str)
            {
                 cout << "i = " << i << endl;
                 break;
            }
        }
        
        if (i == 31) cout << "No!" << endl;
        
        system("pause");
        return 0;
}
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
26.03.2013, 22:15  [ТС]     Удалить символы из строки #17
Да,но мне нужно именно из строки models/v_m249.mdll найти

То есть проходится циклом по массиву,когда проходит по строке

"weapon_m249",

Видит,что совпадение строки models/v_m249.mdll с weapon_m249,true
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2013, 22:36     Удалить символы из строки #18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
string str = "_m249";
string temp;
int i;
for (i = 0; i < 31; ++i)
{
      temp = WeaponNames[i];
      if (temp.find(str) != -1)
      {
              cout << "i = " << i << endl;
              break;
      }
}
        
if (i == 31) cout << "No!" << endl;
pEntity
10 / 5 / 1
Регистрация: 12.12.2012
Сообщений: 371
26.03.2013, 22:43  [ТС]     Удалить символы из строки #19
Вот откуда

string str = "_m249";

У меня const char *

Которая передает models/v_m249.mdll
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2013, 22:58     Удалить символы из строки
Еще ссылки по теме:

C++ Определить длину строки,удалить из строки все символы, которые равны заданному
Задана строка, символы которой могут повторяться. Нужно удалить все символы строки с помощью наименьшего количества вычеркиваний C++
Удалить из строки каждую пару символов '!?' и удалить некоторые символы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2013, 22:58     Удалить символы из строки #20
Цитата Сообщение от pEntity Посмотреть сообщение
У меня const char *
Цитата Сообщение от pEntity Посмотреть сообщение
Которая передает models/v_m249.mdll
Это мне откуда должно быть видно, что у вас и как?
Yandex
Объявления
26.03.2013, 22:58     Удалить символы из строки
Ответ Создать тему
Опции темы

Текущее время: 10:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru