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

Переместить слова в начало строки - C++

Восстановить пароль Регистрация
 
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
25.12.2011, 19:56     Переместить слова в начало строки #1
Добрый день! Дана строка CString типа, перем m_f и m_last указывают диапазон слов, которые надо перенести в начало строки.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 char *tot;
 char *str,*str3,*str2;
 str2=" ";
 str3=" ";
 i=0;
 
  str=id1.GetBuffer();
  tot=strtok(str," ");
  
  while (tot!=NULL)
  {
    if (m_f<=i && m_last>=i) strcpy(str2,tot);
    else strcpy(str3,tot);
    tot=strtok(NULL," ");
    i++;
  }
strcat(str2,str3);
Почему то вызывает ошибку Нарушение прав доступа при записи
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2011, 19:56     Переместить слова в начало строки
Посмотрите здесь:

C++ Строки символов. (Переместить последнюю букву в начало слова)
В одномерном массиве все отрицательные элементы переместить в начало массива C++
C++ Напечатать все слова отличные от последнего слова, предварительно перенести последнюю букву в начало слова
C++ Переместить первую букву слова в конец слова(Строки)
Файловый ввод/вывод. Во всех словах строки переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец C++
Переместить все положительные элементы в начало массива C++
Отрицательные значения массива переместить в начало C++
Отрицательные значения массива переместить в начало C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,195
Завершенные тесты: 1
25.12.2011, 20:48     Переместить слова в начало строки #2
Нарушение прав доступа связано с тем, что под str,str3,str2 не выделена память.
Можно написать так
char str[100],str3[100]=" ",str2[100]=" ";
Но мне кажется, вы решаете не ту задачу, в условии написано использовать объект Cstring из MFC
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
25.12.2011, 22:23  [ТС]     Переместить слова в начало строки #3
id1 - это и есть CString
Спасибо ошибку исправило это, осталось только логику мне поправить.

Добавлено через 11 минут
Кстати почему он предлоги пропускает из 1 буквы?

Добавлено через 42 минуты
Не пойму что случилось стал ругаться на строчку
str=id1.GetBuffer();

Добавлено через 39 минут
Все таки доделал. Может кому пригодится в будущем. Выкладываю.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char *tot;
char str[100]="",str3[100]="",str2[100]="";
i=1;
//id1 CString берется из CEdit
strcat(str,id1); 
tot=strtok(str," ");
strcpy(str3,tot);strcat(str3," ");
    while (tot!=NULL)
  { 
      tot=strtok(NULL," ");i++;   
      if (m_f<=i && m_last>=i && tot!=NULL) {strcat(str2,tot);strcat(str2," ");}
      if ((m_f>i || m_last<i) && tot!=NULL) {strcat(str3,tot);strcat(str3," ");}             
  }
    strcat(str2,str3);
Yandex
Объявления
25.12.2011, 22:23     Переместить слова в начало строки
Ответ Создать тему
Опции темы

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