C++ Warning:cast to pointer from integer of different size [-wint-to-pointer-cast

компьютеры программирование программы проблема C++

Помогите пожалуйста
Примечания:
2.В тех заданиях, где применен термин "слово", под ним понимается любая последовательность символов, ограниченная любым числом пробелов и/или началом/концом строки.
В 12:
Функция доводит длину строки до заданной,вставляя пробелы между словами

Я написал код, но в теме указателей плаваю, прога не пашет и выдает эту ошибку

#include <locale.h>
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <string.h>
using namespace std;

int addspace(char *src,char *dest, int len)
///*** функция добавления пробелов ***/
///* параметры:
// src - строка-источник
// dest - строка-результат
// len - новая длина строки
// функция возвращает:
// 0 - нормальное выполнение
// -1 - новая длина строки имеет меньшую длину, чем заданая строка или же она отрицательна
// 1 - заданая строка неверно задана */
{
int ret;
int src_len=strlen(src);
if ((len<0) || (len<src_len)) ret=-1;//передан неверный параметр len
else
{
int src_sp;
for(int i=0; i<=src_len; i++) if (src[i]==' ') src_sp++;//считает пробелы в строке src
if (src_sp==0) ret=1;//строка задана неверно
else//все параметры верны, делаем обработку
{
int sp_need,sp_word;
int add_sp_word;//кол-во пробелов, которые надо добавить дополнительно
bool odd;
sp_need=len-src_len; //Кол-во пробелов, которые надо добавить
if (sp_need % src_sp==0) odd=false;
else
{
odd=true;
add_sp_word=sp_need % src_sp;
}
sp_word=sp_need / src_sp; //кол-во пробелов, которые надо добавить к каждому пробелу в строке в любом случае.
char sp=' ';
if (odd)
{
int k=0;
int cnt=0;
do
{
if (src[k]==' ')
{
strncat((char*)dest,(char*)src[k],k);
for (cnt=0; cnt<add_sp_word; cnt++)
strncat((char*)dest,(char*)sp,1);
}
else strncat((char*)dest,(char*)src[k], 1);
k++;
}
while (src[k]!=' ');

for (int i=k+cnt; i<=len; i++) //формируем новую строку
if (src[i]=' ')
{
strncat((char*)dest,(char*)src[i], 1);
for (int i=0; i<sp_word; i++) strncat((char*)dest,(char*)sp,1);
}
else strncat((char*)dest,(char*)src[i], 1);
}
else
for (int i=0; i<=len; i++) //формируем новую строку
if (src[i]=' ')
{
strncat((char*)dest,(char*)src[i], 1);
for (int i=0; i<sp_word; i++) strncat((char*)dest,(char*)sp,1);
}
else strncat((char*)dest,(char*)src[i], 1);
}
}
return ret;
}


/*** главная функция ***/
int main(void)
{
system("color 0A");
setlocale(LC_ALL, "Russian");
char s1[300],s2[300]; /* источник и результат */
int l, r; /* позиция, длина, результат */
for (;;) /* бесконечный цикл */
{
cout << "Введите строку длинной не более 300>";
/* ввод строки-источника */
if (!strcmp(gets(s1),"***")) break;
/* ввод остальных параметров */
cout << "Введите новую длину строки>";
cin >> l;
/* обращение к функции addspace */
r=addspace(s1,s2,l);
/* вывод результатов */
if (r=0) cout << "\nОтвет:" << s2;
else if (r=-1) cout<<"\nОшибка!Неверно введена новая длина строки.";
else cout<<"\nОшибка!Размер строки превышен.";
gets(s1);
}
}

Примечание:
Сори за быдлокод, 1 курс, только перешел с делфи

Примечание:
Вот полное задание
http://www.ex.ua/921417031123
Желание изучить есть, это даже в данный момент первоочередная задача
EasyPlaton, спасибо попробую исправить
Ответы:
Как тут весело, г-код везде ( ._.)
надо решит какими-то конкретными методами?
можно увидеть само ТЗ?
насколько есть желание изучить Си, Си++ ?
>strncat((char*)dest,(char*)src[k],k);
и т.д.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.