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

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

Войти
Регистрация
Восстановить пароль
 
 
proga91
0 / 0 / 0
Регистрация: 07.11.2014
Сообщений: 30
#1

Компилятор ругается на функцию strncat - C++

19.11.2014, 19:30. Просмотров 631. Ответов 15
Метки нет (Все метки)

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
#include <iostream>
#include <string>
using namespace std;
 
 
long p[260000],x,i,j,k,d,l;
char t[260000],s[510000];
void prefix()
{
 
     p[0]=0;k=0;
     for (i=1;i<x;i++)
     {
         while ((k>0)&&(t[k]!=t[i])) k=p[k];
 
         if (t[k]==t[i]) k++;
         p[i]=k;
 
     }
 
}
 
   void solve()
   {
        k=0;d=0;
        for (i=0;i<2*x;i++)
        {
            while ((k>0)&&(t[k]!=s[i])) k=p[k];
            if (s[i]==t[k]) k++;
            if (k>=x) {d=1;break;}
        }
        l=2*x-i-1; if (l==x) l=0;
        if (d==0) cout<<-1<<endl; else cout<<l<<endl;
   }
 
int main()
{long l;
    cin>>x; cin.get();
    for (i=1;i<=x;i++)
     p[i]=0;
     gets(s);
    l=strlen(s);
     gets(t);
 
     strncat(s,s,l);
     l=strlen(s);
     prefix();
 
     solve();
    fclose(stdin); fclose(stdout);
    return 0;
}

ругается на strncat(s,s,l);что делать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2014, 19:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Компилятор ругается на функцию strncat (C++):

Почему компилятор ругается на математическую функцию? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cmath&gt; using namespace std; class X { double *x, *y,...

Ругается компилятор, если создаю функцию за пределами главного файла! - C++
Вот что пишет компилятор 1&gt;------ Построение начато: проект: nasledovatlenostj, Конфигурация: Debug Win32 ------ 1&gt;nasledie1.obj :...

Multiple definition: почему компилятор ругается на единственную функцию, используемую в обоих source-файлах? - C++
Пихаю хедер в 2 сурсца разных классов. Компилятор ругается на единственную функцию, которую я использую в обоих сурсцах. #ifndef LIB ...

Компилятор не ругается - C++
Компилятор по разному реагирует на 2 указателя на строки (см.комментарии). В связи с этим появился вопрос - где хранятся аргументы...

Ругается компилятор - C++
Создать класс жидкость, имеющий название (указатель на строку), плотность. Определить конструкторы, деструктор и операторы вывода в поток....

Ругается компилятор - C++
Компилирую программу: // Proba2.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;vector&gt;...

15
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3912 / 2149 / 549
Регистрация: 18.10.2014
Сообщений: 3,756
19.11.2014, 19:41 #2
Включать необходимые заголовочные файлы. Почему не включён <cstring> и зачем включён ненужный <string>?
0
proga91
0 / 0 / 0
Регистрация: 07.11.2014
Сообщений: 30
19.11.2014, 19:55  [ТС] #3
TheCalligrapher, ошибка осталась
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23838 / 15830 / 4777
Регистрация: 22.10.2011
Сообщений: 27,996
Записей в блоге: 5
19.11.2014, 20:05 #4
C++
1
2
3
#include <iostream>
#include <cstdio>
#include <cstring>
, никакой ошибки нет...
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3912 / 2149 / 549
Регистрация: 18.10.2014
Сообщений: 3,756
19.11.2014, 20:06 #5
Цитата Сообщение от proga91 Посмотреть сообщение
ошибка осталась
Какая ошибка????
0
proga91
0 / 0 / 0
Регистрация: 07.11.2014
Сообщений: 30
19.11.2014, 20:17  [ТС] #6
TheCalligrapher,

Ошибка 1 error C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
0
true_bugmaker
28 / 5 / 1
Регистрация: 18.11.2014
Сообщений: 68
19.11.2014, 21:17 #7
Ну так используй _CRT_SECURE_NO_WARNINGS как предлагают, если конечно уверен что тебя это не коснётся. В чём проблема?
0
Evg
Эксперт CАвтор FAQ
18030 / 6262 / 427
Регистрация: 30.03.2009
Сообщений: 17,207
Записей в блоге: 27
19.11.2014, 23:23 #8
Цитата Сообщение от true_bugmaker Посмотреть сообщение
Ну так используй _CRT_SECURE_NO_WARNINGS как предлагают, если конечно уверен что тебя это не коснётся
Я думаю, он не знает, что это такое и уж тем более как его использовать
0
true_bugmaker
28 / 5 / 1
Регистрация: 18.11.2014
Сообщений: 68
20.11.2014, 00:02 #9
-D_CRT_SECURE_NO_WARNINGS в ключах компилятора или #define _CRT_SECURE_NO_WARNINGS в начале исходника, до инклудов. Хотя это не ошибка, а лишь предупреждение, не совсем понятно, какая страннаятулзина может его выдавать. ЕМНИП strncat входит в стандарты С89 и С99. На стандарты ругаться неположено.
0
lss
921 / 850 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
20.11.2014, 04:57 #10
Как отключить в свойствах проекта:
Ошибка в SCANF
Или, выше всех инклудов, прописать: #define _CRT_SECURE_NO_WARNINGS (для getch() не работает, нужно заменить на _getch()).
Или ниже всех инклудов прописать: #pragma warning(disable : 4996)
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3912 / 2149 / 549
Регистрация: 18.10.2014
Сообщений: 3,756
20.11.2014, 05:08 #11
Тут еще можно следующее:

Традиционно С4996 был предупреждением (warning), а не ошибкой (error). Тем мне менее на форуме периодически появляются сообщения о том, что С4996 у кого-то рапортуется именно как error, а не как warning. Вот и здесь мы, очевидно, имеем дело именно с таким случаем.

Волшебное превращение "warning С4996" в "error С4996" происходит тогда, когда в проекте включены так называемые "SDL checks" (Security Development Lifecycle). Начиная с определенной версии VS эти SDL checks включены по умолчанию, что и приводит к "error С4996" вместо "warning С4996".

Зайдите в настройки проекта "C/C++-> General -> SDL Checks" и поставьте их в "No". Это превратит С4996 обратно в warning.

Это, конечно, не делает С4996 менее надоедливым, так что душить его все равно придется.
0
Dennis Ritchie
547 / 139 / 29
Регистрация: 27.07.2014
Сообщений: 2,445
20.11.2014, 07:55 #12
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Начиная с определенной версии VS эти SDL checks включены по умолчанию, что и приводит к "error С4996" вместо "warning С4996".
Кажется, начиная с VS 2012. В VS 2010 всё нормально, а в VS 2012, 2013, 2015 проверки SDL включены по умолчанию.
0
KOPOJI
20.11.2014, 08:02
  #13

Не по теме:

Цитата Сообщение от true_bugmaker Посмотреть сообщение
На стандарты ругаться неположено.
мелкософт считает иначе..

0
Evg
20.11.2014, 09:47
  #14

Не по теме:

Цитата Сообщение от KOPOJI Посмотреть сообщение
мелкософт считает иначе..
В данном случае, насколько я понял, ругаться или не ругаться - решает пользователь и управляет этим решением при помощи опции. А микрософт всего лишь считает, взводить опцию по умолчанию, или нет

0
KOPOJI
20.11.2014, 10:25     Компилятор ругается на функцию strncat
  #15

Не по теме:

Насколько я помню, ни в одном стандарте этой ошибки нет, ее ввели именно мелкософт. Поэтому изначально они навязывают свои стандарты, а там уже да, пользователь решает..

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2014, 10:25
Привет! Вот еще темы с ответами:

Компилятор ругается - C++
Условие Создать класс, содержащий сведения о количестве изделий, собранный сборщиками цеха за неделю. Класс должен содержать следующие...

ругается компилятор: - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;process.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; float a,b; ...

Ругается компилятор (итераторы) - C++
Мужики в чем дело компилятор ругается C2451 #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;fstream&gt; #include &lt;map&gt; using...

Компилятор ругается на USHORT * - C++
USHORT * pInt = new USHORT; Чего это он? 1&gt;d:\проги\указателя\указателя\указателя.cpp(48): error C2065: USHORT: необъявленный...


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

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

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