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

Комментарии - C++

Восстановить пароль Регистрация
 
student888
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 21
08.01.2013, 00:30     Комментарии #1
Напишите комментарии к программе.

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
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
 char s[100], tbw[3], tew[3], temp[5];
 int i=0, j, bw, ew, len, f=0;
 clrscr();
 printf("Введите строку:\n");
 gets(s);
 len=strlen(s);
 while (i<len && f==0)
  {
   while (s[i]==' ' && i<len) i++;
   bw=i;
   while (s[i]!=' ' && i<len) i++;
   strncpy(tbw, &s[bw], 3);
   tbw[3]='\0';
   strncpy(temp, &s[bw], 5);
   temp[5]='\0';
   j=0;
    while (j<len && f==0)
     {
      while (s[j]==' ' && j<len) j++;
      ew=j;
      while (s[j]!=' ' && j<len) j++;
      if (ew!=bw)
       {
    strncpy(tew, &s[ew+2], 3);
    tew[3]='\0';
    if (strcmp(tbw,tew)==0) f=1;
       }
     }
  }
 if (f==1)
  {
   strncpy(&s[bw], &s[ew], 5);
   strncpy(&s[ew], temp, 5);
   printf("Строка изменена:\n %s",s);
  }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2013, 00:30     Комментарии
Посмотрите здесь:

Удалить из строки комментарии вида '/* ... */". Игнорировать вложенные комментарии. C++
Комментарии C++
C++ Комментарии
C++ Комментарии
C++ Комментарии
Комментарии C++
Удалить из строки комментарии вида '/* . */". Игнорировать вложенные комментарии C++
Комментарии C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pakisan
14 / 14 / 1
Регистрация: 04.01.2013
Сообщений: 61
08.01.2013, 01:04     Комментарии #2
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
 char s[100], tbw[3], tew[3], temp[5]; // Создаются масивы
 int i=0, j, bw, ew, len, f=0; // объявляются переменные
 clrscr(); // Очищается экран
 printf("Введите строку:\n"); // Выводится текст
 gets(s); // Получаем строку в массив s[100]
 len=strlen(s); // Сохраняем длину строки в переменную len
 while (i<len && f==0) // Запускаем цикл где i меньше длины и f==0
  {
   while (s[i]==' ' && i<len) i++; // Пока встречаем пробелы и i меньше len
   bw=i; // сохраняем кол-во пробелов в bw
   while (s[i]!=' ' && i<len) i++; // Пока встречаем символы наматываем i
   strncpy(tbw, &s[bw], 3); // копируем в массив tbw 3 символа(символ) из массива s
   tbw[3]='\0'; // Закрываем массив признаком конца строки
   strncpy(temp, &s[bw], 5); // копируем в массив temp 5 символов(символ) из массива s
   temp[5]='\0'; // Размещаем в конечной ячейке признак конца строки
   j=0; // инициализируем переменную
    while (j<len && f==0) // Запускаем цикл. Цикл идет пока j<len
     {
      while (s[j]==' ' && j<len) j++; // Пропускаем пробелы
      ew=j; // Сохраняем значение в переменной ew(так понимаю кол-во пробелов)
      while (s[j]!=' ' && j<len) j++; // проматываем полные ячейки
      if (ew!=bw) // Если ew != bw
       {
    strncpy(tew, &s[ew+2], 3); в массив tew перемещаем 3 значения из массива s начиная с ew+2
    tew[3]='\0'; // Заканчиваем массив признаком конца строки
    if (strcmp(tbw,tew)==0) f=1; // Если содержимое tbw совпадает с содержимым tew,f=1
       }
     }
  }
 if (f==1)
  {
   strncpy(&s[bw], &s[ew], 5); // Перемещаем в массив s, по адресам bw 5 элементов(элемент) из массива s с адресами ew
   strncpy(&s[ew], temp, 5); // переносим 5 символов(5 символ) из temp в s по адресу ew
   printf("Строка изменена:\n %s",s);
  }
}
Не до конца понял, что означают цифры в конце функции strcpu(*,*,number) - либо кол-во переносимых символов, либо номер переносимого символа.
P.S. Сам студент, только учусь, ногами не пинать..
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
08.01.2013, 16:17     Комментарии #3
Цитата Сообщение от student888 Посмотреть сообщение
tbw[3]='\0';
Цитата Сообщение от student888 Посмотреть сообщение
temp[5]='\0';
Здесь выход за границы массива. индексы в массивах начинаются с нуля. 0..2, 0..4
Yandex
Объявления
08.01.2013, 16:17     Комментарии
Ответ Создать тему
Опции темы

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