Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
1

Помогите исправить ошибки

15.10.2011, 11:23. Просмотров 2761. Ответов 5
Метки нет (Все метки)

Задание:
strncpy
char *strncpy1(char*dest,const char*s1,int maxlen);
Функция копирует kol=size_t maxlen символов строки src в строку dest.

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
#include "stdafx.h"
#include <string.h>
 
int main();
char *strncpy1(char*dest,const char*s1,int maxlen)
{
    
    for (int i=0;*(s1+i);i++)
        *(dest+i)=*(s1+i);
    *(dest+i)=0;
return dest;
}
int main()
  {char dest[50]; char s1[50]; int d;
  printf("Vvedite stroki: \n");
  gets(dest);
  gets(s1);
  scanf("%d",&d);
  {puts(strncpy1(dest,s1,d));
  puts(s1);
  puts(strncpy);
  getch( );
  return 0;
  }}
Ошибки:
Error 1 error C2065: 'i' : undeclared identifier d:\...\*.cpp 14
Error 2 error C2664: 'puts' : cannot convert parameter 1 from 'char *(__cdecl *)(char *,const char *,size_t)' to 'const char *' d:\...\*.cpp 26
Error 3 error C3861: 'getch': identifier not found d:\...\*.cpp 27
Error 4 fatal error C1903: unable to recover from previous error(s); stopping compilation d:\...\*.cpp 30
Error 5 fatal error C1063: INTERNAL COMPILER ERROR c1xx
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2011, 11:23
Ответы с готовыми решениями:

Помогите исправить ошибки
Долго искал в интернетах как сменить steam id в nosteam и вот нашёл, тему где...

помогите исправить ошибки
в особености с коутом и флот....я относительно недавно начал заниматся си...

помогите исправить ошибки
Соседями элемента А с индексом ij в матрице назовем элементы A с индексом kl c...

Помогите исправить ошибки в программе
#include&lt;math.h&gt; #include&lt;stdio.h&gt; #include&lt;time.h&gt; #include&lt;iostream&gt; ...

Помогите исправить ошибки в классе
Здравствуйте. Наконец то дописываю класс, но опять столкнулся с кое какими...

5
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
15.10.2011, 12:00 2
переменная i вне цикла не видна
подключи #include <cstdio>
0
SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
15.10.2011, 12:13  [ТС] 3
Цитата Сообщение от sandye51 Посмотреть сообщение
переменная i вне цикла не видна
подключи #include <cstdio>
Как ни странно но не помогло. Кстати после некоторых манипуляций осталось 3 ошибки:
Error 1 error C2065: 'i' : undeclared identifier d:\..\*.cpp 15
Error 2 error C2664: 'puts' : cannot convert parameter 1 from 'char *(__cdecl *)(char *,const char *,size_t)' to 'const char *' d:\...\*.cpp 27
Error 3 error C3861: 'getch': identifier not found d:\...\*.cpp 28
0
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
15.10.2011, 12:35 4
SAZl, я ж тебе русским языком написал что i - не видна вне цикла.
для getch() еще нужна #include <conio.h> походу

Цитата Сообщение от SAZl Посмотреть сообщение
puts(strncpy);
бред какой-то
1
SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
19.10.2011, 19:22  [ТС] 5
Оказалось программа по моей вине была с неправильным циклом.

Внезапно появилось в цикле FOR непонятное для меня действие. Дело происходит в том, что копирование символов, размера maxlen, в строку dest происходит до конца цикла, а именно до строки "*(dest+i)=0;".
Что нужно дописать, чтобы после выполнения цикла FOR выдавалась строка dest с скопированными символами из s1, количества maxlen.

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
#include "stdafx.h"
#include <cstdio>
#include <string.h>
#include <conio.h>
 
int main();
int i;
char *strncpy1(char*dest,const char*s1,int maxlen)
{
    for (int i=0; *(s1+i); i++)
    {
        if (i<maxlen)
        {
        }
        else
        break;
        *(dest+i)=*(s1+i);
        }
                  *(dest+i)=0;
    return dest;
}
int main()
{char dest[50]; char s1[50]; int d; 
  printf("Vvedite stroki: \n");
  gets(dest);
  gets(s1);
  scanf("%d",&d);
  puts(strncpy1(dest,s1,d));
  getch( );
}
Может кто поможет?
0
SAZl
2 / 9 / 0
Регистрация: 12.10.2011
Сообщений: 173
27.10.2011, 18:23  [ТС] 6
Все ошибки исправлены (рабочая!):

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
#include "stdafx.h"
#include <cstdio>
#include <string.h>
#include <conio.h>
 
int main();
char *strncpy1(char*dest,const char*s1,size_t maxlen)
{
    int i;
    for (i=0; *(s1+i); i++)
    {
        if (i<maxlen)
        {
        }
        else
        break;
        *(dest+i)=*(s1+i);
        }
    *(dest+i)=0;     
    return dest;
}
int main()
{char dest[50]; char s1[50]; int d; 
  printf("Vvedite stroki: \n");
  gets(dest);
  gets(s1);
  scanf("%d",&d);
  puts(strncpy1(s1,dest,d));
  puts(strncpy(s1,dest,d));
  getch( );
  getchar();
  return 0;
}
0
27.10.2011, 18:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2011, 18:23

Помогите исправить ошибки в классе
Здравствуйте. Помогите пожалуйста исправить ошибки. Их очень много, но они...

Помогите исправить ошибки с D3D
Помогите пожалуйста , люди добрые Скриншот Картинки и любые другие файлы...

Помогите, пожалуйста, исправить ошибки в коде
const int n=20; int b; int i,j,c; for (i=1;i&gt;n,i++) { c=a;...


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

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

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