[WT] [Архив] [Поиск] [Главная] [Управление]
[Совместно с IIchan.ru]

[Назад]
Ответ в нить

Имя
Адрес  [sage] [noko]
Animapcha image [?]
Тема   (reply to 3169)
Сообщение
Файл 
Пароль  (для удаления файлов и сообщений)
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаемые типы файлов: 7Z, BZ, GIF, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP
  • Максимально допустимый размер файлов: 10000 кБ.
  • Изображения, размер которых превышает 200 на 200 пикселей, будут уменьшены.
  • Ныне 1288 unique user posts. Посмотреть каталог
  • Радио:

Файл: 129112869820.jpg-(247.91KB, 500x691, Alex 12 What are you waiting for.jpg)
3169 No. 3169 watch
Призываю доброанонов-быдлокодеров!
такие дела. вот задание по С++
Функция выделяет из заданной строки подстроку заданной длины, начиная с заданной позиции.
вот хуета которую я на стругал :3

#include <stdio.h>
#include <string.h>
int substr(char , char , int, int);
int main(void) {
char s1[80],s2[80];
int n, l, r;
for (;;) {

printf("Введите строку >");
if (!strcmp(gets(s1),"*")) break;
printf("Введите pos len>");
scanf("%d %d",&n,&l);
r=substr(s1,s2,n,l);
printf("pos=%d, len=%dn",n,l);
printf("s1=>>%s<<n",s1);
printf("s2=>>%s<<n",s2);
printf("R=%dnn",r);
gets(s1);
}

}
int substr(char src, char dest, int pos, int len) {
int ret;
for(; pos&&src; pos--, src++);
if (pos||(len<0)) ret=-1;
else {

for(;len&&
src; dest++=src++,len--);
ret = len ? 1 : 0;
}

*dest=0;
return ret;
}
>> No. 3171
бамп
>> No. 3172
>>3171
>17:51:39
>19:40:51
>бамп
Наркоман штоле?
>> No. 3176
>>3169
Я правильно понял, что все указатели съела разметка, или ты действительно передаешь туда-сюда по одному символу?

void substr(char src, char dest, int pos, int len)
{
strncpy(dest, src+pos, len);
}

Я не понимаю, к чему твои костыли. Нет, я вообще не понимаю, что делают твои костыли.
>> No. 3177
>>3176
Не получилось у меня в код, даже с нескольких раз, ну и ладно.
>> No. 3178
>>3176
>что делают твои костыли.
Думаю, что они делают лабу по программированию.
>> No. 3183
>>3169
Твой код написан не на С++, а на С. И алгоритм совершенно индийский. Я бы сделал так:


#include <cstdio>
#include <iostream>

const unsigned STR_MAX_LEN = 128;
#define STR_FMT "%128s"

using namespace std;

int getSubstr(char str, char substr, unsigned pos, unsigned len)
{
int i, k;

if((pos + len) > STR_MAX_LEN)
{
cerr<<"Error: Invalid combination of position "<<pos<<" and lenght "<<len<<"!n";
return 1;
}

for(i = pos, k = 0; k <= (len - 1); i++, k++)
{
substr[k] = str[i];
if((str[i] == '') && (k < len))
{
cerr<<"Error: String is too short!n";
return 1;
}
}
substr[k] = '';
printf("n");

return 0;
}

int main()
{
char str[STR_MAX_LEN + 1];
char substr[STR_MAX_LEN + 1];
unsigned pos = 0;
unsigned len = 0;

while(1)
{
cout<<"Enter string:n";
scanf(STR_FMT, str);

if(str[0] == '')
{
cerr<<"Error: Invalid string!n";
continue;
}

cout<<"Enter position:n";
cin>>pos;
if(pos > STR_MAX_LEN)
{
cerr<<"Error: Invalid position!n";
continue;
}

cout<<"Enter lenght:n";
cin>>len;
if(!len || ((pos + len) > STR_MAX_LEN))
{
cerr<<"Error: Invalid lenght!n";
continue;
}
if(!getSubstr(str, substr, pos, len))
{
cout<<"String: "<<str<<", substring "<<substr<<" ("<<len<<" chars from "<<pos<<")n";
}
}
return 0;
}

>> No. 3184
Файл: 1_cpp.zip-(646B)
3184
>>3183
Арр, форматирование и звездочки полетели к черту. Держи файл в архиве.
>> No. 3220
>>3169
>>3183
Слов нет, одни эмоции.
[Назад]


Удалить сообщение []
Пароль  
[Mod]