43 / 43 / 13
Регистрация: 17.05.2011
Сообщений: 162
1

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

25.12.2011, 19:56. Показов 1412. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2011, 19:56
Ответы с готовыми решениями:

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

Переместить буквы в начало слова
Всем привет ;) Тут есть задание и я застрял. Помогите :) a) Текст состоит из букв, цифр и знаков...

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

Как в каждом слове заданной строки переместить гласные буквы в начало?
как в каждом слове строки переместить гласние букви в начало?с++

2
Модератор
Эксперт С++
13252 / 10391 / 6213
Регистрация: 18.12.2011
Сообщений: 27,793
25.12.2011, 20:48 2
Нарушение прав доступа связано с тем, что под str,str3,str2 не выделена память.
Можно написать так
char str[100],str3[100]=" ",str2[100]=" ";
Но мне кажется, вы решаете не ту задачу, в условии написано использовать объект Cstring из MFC
1
43 / 43 / 13
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2011, 22:23
Помогаю со студенческими работами здесь

Поместить в начало строки слова, содержащие только цифры, а затем – все остальные слова
Строка состоит из слов, разделенных ровно одним пробелом, пробелов перед первым и после последнего...

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru