Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 02.06.2017
Сообщений: 8

Исправить предупреждение deprecated conversion from string constant to 'char*'

02.06.2017, 19:54. Показов 2218. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно вывести предложение без повторных вхождений слов. Нужно исправить предупреждение deprecated conversion from string constant to 'char*'.
main.cpp
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
42
43
44
45
46
47
#include <string.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <windows.h> 
#include <iostream> 
#include "str.h" 
#define N 256 // кол-во символов в слове 
 
using namespace std; 
 
int main() 
{ 
char predl[256]; // Введенное предложение 
char slova[N][N]; // Массив слов в предложении 
char slova2[N][N]; //Массив слов без повторных вхождений 
int sl; //Счетчики слов 
int s2; //количество слов без повторных вхождений 
char *r="`!;:,.?- _ "; // Разделительные знаки 
//1. Ввод предложения 
//predl-предложение,которое нужно заполнить 
InpPredl (predl); 
Store(&predl,1,"StrIn.txt"); 
Load(slova,"StrIn.txt"); 
//3.Выделение из предложения слов 
//predl-предложение, из которого идет выделение 
//slova-Массив слов в предложении 
//r- hазделительные знаки 
sl=Select(predl,slova,r); 
// 4.Печать слов 
//slova-Массив слов в предложении 
//sl-количество слов 
cout « "\nИсходные слова:\n" « endl; 
Print(slova,sl); 
// 5.Удаление повторных вхождений 
//slova-Массив слов в предложении 
//sl-количество слов 
//slova2 - ноывй массив 
s2=Res(slova,slova2,sl); 
// 6.Вывод результата 
//slova2-Массив слов в предложении без повторов 
//s2-количество таких слов 
cout « "\nCлова без повторных вхождений:\n" « endl; 
Print(slova2,s2); 
Store(slova2,s2,"StrOut.txt"); 
system("pause"); 
return 0; 
}
str.cpp
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <string.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <windows.h> 
#include <iostream> 
#include <fstream> 
#define N 256 
#include "str.h" 
 
using namespace std; 
 
// ОПИСАНИЕ ИСПОЛЬЗУЕМЫХ ФУНКЦИЙ 
//1. Функция ввода предложения 
void InpPredl(char *s)//s-указатель на начало строки 
{ 
cout « "Введите предложение:" « endl; 
gets (s);//записывает предложение по адресу s до тех пор пока не дойдет до символа 
//окончания предложения или до нулевого символа 
} 
 
//2.Функция выделение из предложения слов или разделителей 
//функция возвращает количество выделенных элементов. 
//predl-предложение, из которого идет выделение 
//m-массив слов результата(под каждое слово предусмотрен размер в N символов 
//sel-адрес символов, распологаемых между выделяемыми элементами 
int Select(const char predl[], char m[][N], char sel[]) 
{ 
char *s,*p; // Указатели на строки 
int n=0; // Счетчик выделенных строк 
// strdub резервирует оперативную память и помещает на это место копию строки predl; 
//возвращает указатель на зарезервированную область памяти.По завершении работы программы 
//необходимо память опять отдать операционной системе. Это действие выполняется функцией free 
s=strdup (predl); // Делаем копию исходного предложения, так как в функцию передается константа, 
// а функция strtok при своей работе требует внесения 
//изменений в исходное предложение 
p = strtok (s, sel); // выделение первой части строки 
//переформирует строку s в отдельные знаки; 
//строка sel содержит символы, которые используются в качестве разделителей. 
while (p!=NULL)// если подстрока выделена успешно .. 
{ 
//... тогда идет .. 
strcpy (m[n],p);// ... копирование строки в массив-результат, 
 
p = strtok (NULL, sel); // выделение очередной строки 
n++; // и увеличение счетчика строк 
} 
free (s);// удаление временной копии предложения 
return n; 
 
} 
 
//3.Функция вывода массива строк на экран 
//m-массив слов результата(под каждое слово предусмотрен размер в N символов 
//n-кол-во выделенных слов 
void Print(char m[][N],int n) 
{ 
int i;//счётчик 
for(i=0;i<n;i++) 
{ 
cout « i+1 «" "; //выводим номер слова 
cout « m[i]; //выводим слово и переходим на новую строку 
cout « "\n" ; 
} 
cout « "\n" ; 
cout « "\n" ; 
} 
//4. Удаление повторных вхождений 
int Res(char m[][N], char a[][N], int n){ 
int i,k,j; 
k=0; 
char *er="$$$"; //определитель повторного вхождения 
for (i=0; i<n; i++){ 
int g=strcmp(m[i],er); //сравнение слова с определителем повторного вхождения 
if (g!=0){ //если неравен... 
strcpy(a[k],m[i]); //то копируем слово в результирующий массив
k++; //прибавляем счетчик 
} 
for (j=i; j<n; j++){ 
int h=strcmp(m[i],m[j]); //сравнение i и j элементов массива 
if ((h==0) and (i!=j)){ //если элементы равны и не одни и те же... 
strcpy(m[j],er); //объявляем j элемент определителем повторного вхождения 
} 
} 
} 
return(k); //возвращаем количесво слов в новом предложении 
} 
 
// 5. Сохранение в файл 
void Store(char m[][N],int n,char *naz) 
{ 
ofstream fout(naz); 
for (int i=0;i<n;i++) 
{ 
fout « m[i]«endl; 
} 
fout.close(); 
} 
// Чтение файла 
// k – адрес начала исходного двумерного массива 
void Load(char m[][N],char *naz)//Обрабатываемый массив 
{ 
ifstream fin(naz); 
if (fin.is_open()) 
{cin.sync(); 
fin.getline(m[N], 256); 
} 
else 
cout « "Ошибка открытия файла" « endl; 
fin.close(); 
 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.06.2017, 19:54
Ответы с готовыми решениями:

Компилятор выдает предупреждение при инициализации строки:deprecated conversion from string constant to char*
#include &lt;iostream&gt; using namespace std; int main() { char *s=&quot;abcd&quot;; cout &lt;&lt; s &lt;&lt; endl; // prints !!!Hello World!!! return...

Deprecated conversion from string constant to 'char*'
Подскажите,как записать чаровский массив и можно ли его вообще записать вроде: char *one = {&quot;&quot;,&quot;один &quot;,&quot; два...

Deprecated conversion from string constant to 'char*'
Здраствуйте, помогите мне пожалуйста! Объясните в чем проблема #include&lt;stdlib.h&gt; #include &lt;iostream&gt; #include...

1
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.06.2017, 20:33
C++
1
2
const char *naz
const char * sel
И т. д.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.06.2017, 20:33
Помогаю со студенческими работами здесь

Ошибка: deprecated conversion from string constant to ‘char*’
8,2.cpp: In function ‘int main()’: 8,2.cpp:31:12: warning: deprecated conversion from string constant to ‘char*’ String s1=&quot;H&quot;;...

[Warning] deprecated conversion from string constant to 'char*'
Где ошибка?? #include&lt;iostream&gt; #include&lt;windows.h&gt; #include&lt;ctime&gt; using namespace std; void input(char* name,int n){ ...

[Warning] deprecated conversion from string constant to 'char*'
В общем делаю классы, но не получается выводит ошибку. файл Selhoz.h #ifndef _SELHOZ_H_ #define _SELHOZ_H_ #include...

Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings])
Почему компилятор на это матерится? ObjA.Show(&quot;A&quot;); deprecated conversion from string constant to 'char*' #include &lt;iostream&gt;...

Инициализация графического драйвера: Deprecated conversion from string constant to 'char*'
В общем получил я некий код на компиляцию, но тут тонна ошибок. Кажется последняя из них связана с строками: int graphdriver = DETECT,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru