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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
#1

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

25.12.2011, 19:56. Просмотров 871. Ответов 2
Метки нет (Все метки)

Добрый день! Дана строка 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);
Почему то вызывает ошибку Нарушение прав доступа при записи
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2011, 19:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переместить слова в начало строки (C++):

Строки символов. (Переместить последнюю букву в начало слова) - C++
Прошу помощи в решении задачи. Нужно написать код к данной задаче в Visual Studio (в консольной приложении). Вот и сама задача: В...

Переместить первую букву слова в конец слова(Строки) - C++
Здравствуйте уважаемые форумчане. Помогите пожалуйста. Напечатать все слова, заранее перенести первую букву слова в конец слова. Нужно...

Напечатать все слова отличные от последнего слова, предварительно перенести последнюю букву в начало слова - C++
Дано текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв, между соседними словами - не менее одного пробела....

Отрицательные значения массива переместить в начало - C++
Все отрицательные значения линейного вещественного массива переместить в его начало, сохраняя взаимное расположение элементов.

Отрицательные значения массива переместить в начало - C++
Все отрицательные значения линейного вещественного массива переместить в его начало, сохраняя взаимное расположение элементов.

Переместить нулевые элементы в начало массива - C++
#include &lt;iostream&gt; #include&lt;time.h&gt; #include&lt;random&gt; using namespace std; int main() { int min, array,sum=0,f,s,q=0; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
25.12.2011, 20:48 #2
Нарушение прав доступа связано с тем, что под str,str3,str2 не выделена память.
Можно написать так
char str[100],str3[100]=" ",str2[100]=" ";
Но мне кажется, вы решаете не ту задачу, в условии написано использовать объект Cstring из MFC
1
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);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2011, 22:23
Привет! Вот еще темы с ответами:

Переместить 3 числа из конца очереди в начало - C++
Допустим есть двусторонняя очередь. Я ввёл какое-то количество чисел. Нужно переместить 3 последних числа из конца в начало. Вводил числа с...

Переместить положительные элементы массива в его начало - C++
В одномерном массиве, состоящем из целых элементов, вычислить: Превратить массив таким образом, чтобы сначала располагались все...

Переместить все положительные элементы в начало массива - C++
Заполнить массив случайными числами в интервале и переставить элементы так, чтобы все положительные элементы стояли в начала массива, а...

Переместить указатель потока ввода на начало файла - C++
Вот я воспользовался функцией feof по отношению к файлу и у меня указатель сместился на конец файла... Теперь при попытке прочитать из...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru