Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: 47Egorka47   (15.12.2010 в 15:12)
Здравствуйте.
вот функция c моими некоторыми комментариями. помогите пожалуйста,напишите комментарии к строчкам которые я не смог заполнить)заранее спасибо!

void reverse(char *str1,char *signs) // 2 задание по идеи
{
int i,n,a,b; //..
char *str2,*tmp; //..
str2=(char*)calloc(strlen(str1)+1,1); // что значит эта строка?
b=strlen(str1)-1; // б присваиваем длину строки стр1, а -1 почему?
do {
tmp=(char*)calloc(strlen(str1),1); // ???
for(i=b;i>=0;i--) { //.....
if(check_signs(str1[i],signs)) { // если 1 функция.????..то
a=i;
break;
}
else continue;
}
for(i=a;i>=0;i--) {
if(check_signs(str1[i],signs)==0) { // ????
b=i+1;
break;
}
else
if((i==0)&(check_signs(str1[i],signs)!=0)) { // ???
b=i;
break;
}
else continue;
}
n=a-b+1; // почему??
memcpy(tmp,&str1[b],n); // копируем содержимое строки тмп в стр1. так??
strcat(str2,tmp); // что это значит?
strcat(str2," "); // и это что?
b=b-1; // почему -1?
free(tmp); //освобождаем память
}
while(i!=0);
printf("\nNew string:\n\n");
for (i=0;i<strlen(str2)-1;i++)
printf("%c",*(str2+i));
printf("\n");
}


а вот задание кстати:

Дана строка, содержащая текст на естественном языке. Напишите функцию, создающую новую строку, в которой все слова из старой строки следуют в обратном порядке и разделены одним знаком пробела. Исходная строка может содержать различные знаки-разделители (пробелы, запятые, точки и т.п.). Полный набор знаков-разделителей передается функции при её вызове.


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: