19.09.2008, 14:52
общий
это ответ
Здравствуйте, k800ise!
В этой задачи нам необходимо посимвольно переписать n символов из одной строки в другую. Переход по символам строки осуществляется точно также, как по элементам массива (поскольку строки в си - массивы символов), т.е. либо при помощи индексации (str[i]), либо, что менее удобно в большинстве случаев, при помощи работы с указателями (*str - первый символ, *str+1 - второй символ и т.д.). Реализация Вашей задачи в приложении, остальное, думаю, ясно из комментариев.
Удачи!
Приложение:
#include "string.h" //Библиотека для работы функции strlen
#include "iostream.h" //Библиотека для работы с cin
#include "conio.h" //Библиотека для getch
int main(int argc, char* argv[])
{
printf("Vvedite stroku (ne bolee 50 simvolov)\n");
char *str1= new char [51]; //Выделяем память под строки (максимум - 50 символов + конец строки)
char *str2= new char [51];
int n;
cin >> str1; //Считываем строку
printf("\nVvedite N (ne bolee %i)\n", strlen (str1));
cin >> n; //Считываем число
int i;
char *s1=str1, *s2=str2; //Дублируем указатели на строки, чтобы не испортить исходные
for (i=0; i<n; i++) { //В цикле на n итераций
*s2 = *s1; //Переписываем символ
*s1++; *s2++; //Переходим на следующий символ строки
}
*s2= '\0'; //Добавляем конец строки
printf ("\n%s", str2); //Выводим результат
delete [] str1; //Очищаем память
delete [] str2;
getch(); //Ждём реакции
return 0;
}