C/C++

С++. Где ошибка. нужно вставить в слово "world" в слово "of tenks". Короче должно получиться так worldnks (вместе)

Char* ft_strcpy(char* dest, char* src)
{
char ptr_a[] = "of tenks";
char ptr_b[] = "world";
char i = 0;
while(ptr_a[0] <='\0')
{
i++;
ptr_a[0] = ptr_b[i];
}
return 0;
}

int main()
{

char ptr_a[] = "of tenks";
char ptr_b[] = "world";
std::cout << ptr_b;
std::cout << ptr_a;
ft_strcpy(ptr_a, ptr_b);

}
#include <string>
#include <iostream>
using namespace std;
string fn(string& a, string& b) {
return b + string(a.begin() + b.length(), a.end());
}
int main() {
string of_tenks = "of tenks";
string world = "world";
cout << of_tenks << '\n' << world << '\n';
of_tenks = fn(of_tenks, world);
cout << of_tenks << '\n';
system("pause > nul");
}
М7
Михаил 792627176??
64 438
Лучший ответ
От этого кода кровь из глаз, спросил бы лучше у пиров как это делать
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
char* insert(char* str,char* sub, int pos)
{
int sizestr=0, sizesub=0;
pos--;
while(*str!='\0'&&*str!='\n')
{
str++;
sizestr++;
}
while(*sub!='\0'&&*sub!='\n')
{
sub++;
sizesub++;
}
str-=sizestr;
sub-=sizesub;
int newsize=sizestr+sizesub;
char* newstr=(char*)malloc(newsize*sizeof(char));
if(pos>sizestr) pos=sizestr;
for(int i=0;i<pos;i++)
{
*newstr=*str++;
newstr++;
};
for(int i=0;i<sizesub;i++)
{
*newstr=*sub++;
newstr++;
};
for(int i=0;i<sizestr-pos;i++)
{
*newstr=*str++;
newstr++;
};
newstr-=newsize;
return newstr;
}

int main()
{
char* newstr=insert("of tenks","world ",1);
printf("%s",newstr);
fflush(stdout);
sleep(10);
return 0;
}
Nurik Dьюк
Nurik Dьюк
37 945
Nurik Dьюк Добавить еще в insert() первой строчкой:
if(post<0) post=1;
По какой логике они вставляются?
Abrorbek Abdulazizov
Abrorbek Abdulazizov
7 902
не гуру в языках, но это слишком бросается в глаза

1. ты создаешь функцию ft_strcpy которая должна возвращать указатель на Char, а по факту возвращает целое 0.
2. функция принимает в качестве параметров указатели, но ничего с ними не делает.
3. в качестве итератора ты создаешь переменную типа char
4. цикл выполняться не будет (первый элемент массива ptr_a должен быть меньше либо равен символу концу строки?)
5. даже если бы предыдущее имело смысл, то присваивание первому элементу массива ptr_a символов из массива ptr_b привело бы к тому, что у тебя заменился бы только первый символ из массива ptr_a
6. ты задал массивы ptr_a, ptr_b и сразу их вывел, а что с результатом выполнения функции?
ошибка в слове tenks

Похожие вопросы