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

Обрезать строку до первого пробела - C++

Восстановить пароль Регистрация
 
orange_fox
 Аватар для orange_fox
34 / 34 / 6
Регистрация: 06.04.2014
Сообщений: 189
10.04.2014, 17:03     Обрезать строку до первого пробела #1
Первое, что пришло в голову:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
void getWord ( char * words )
{
     char word[255];
     int i = 0;
     for ( i; ( words[i] && words[i] != ' ' ); i++ )
     {
          word[i] = words[i];
     }
     word[i] = '\0';
     cout << "word: " << word << endl; 
     words = word;
}
int main()
{   
    char words[255] = "There is my string";
    cout << "Source string: " << words << endl;
    getWord( words );    
    cout << "New string: " << words << endl;
    cin.get();
}
Но значение words изменить почему-то не получается. Подскажите, в чём проблема. И есть ли более простой/элегантный способ решения этой задачи?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2014, 17:03     Обрезать строку до первого пробела
Посмотрите здесь:

C++ Скопировать подстроку в строку до последнего пробела
C++ Переход на новую строку после пробела
C++ Обрезать строку
C++ Написать функцию F(S,pos), которая возвращает номер первого найденного пробела
Как обрезать строку типа wchar_t* до определенного символа? C++
Обрезать строку при вводе через fgets C++
C++ Что считывает ifstream: слово до пробела или полностью строку?
C++ Как запретить ввод в строку всех символов, кроме 0, 1 и пробела?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
10.04.2014, 17:21     Обрезать строку до первого пробела #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
orange_fox,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
void getWord ( char* words )
{
     char word[255];
     int i = 0;
     for ( i; ( words[i] && words[i] != ' ' ); i++ )
     {
          word[i] = words[i];
     }
     word[i] = '\0';
     cout << "word: " << word << endl; 
     strcpy(words,word);
}
int main()
{   
    char words[255] = "There is my string";
    cout << "Source string: " << words << endl;
    getWord( words );    
    cout << "New string: " << words << endl;
    cin.get();
}
Добавлено через 2 минуты
более элегантный, как вы говорите
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
 
int main()
{   
    char words[255] = "There is my string";
    cout << "Source string: " << words << endl;
    cout << "New string: " <<  strtok(words," ") << endl;
    cin.get();
}
Yandex
Объявления
10.04.2014, 17:21     Обрезать строку до первого пробела
Ответ Создать тему
Опции темы

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