Задача со строками на C/C++
Дано 2 предложения (1е оканчивается точкой; предложения разделены пробелом). Необходимо поменять предложения местами.
Желательно сделать на массивах, без лишних C++ функций.
Посмотрите плз, я на VS 2010 написал. Я сделал, но у меня не работает (выдает различного рода ошибки, полагаю проблемы с компилятором):
#include<windows.h> // Вызов библиотеки для смены кодировки
#include<iostream> // Вызов библиотеки для задержки экрана
#include<stdio.h>
#define SZ 70
void main (void)
{
SetConsoleOutputCP(1251); // Смена кодировки на "windows-1251"
FILE *In;
In = fopen("In.txt", "r"); // в файле 2 предложения
char s[SZ];
int end, i;
// ввод строки из файла в массив s
for(i = 0; i < SZ; i++){
fscanf(In, "%c", s[i]);
}
fclose(In);
// определение конца 1го предложения
for(i = 0; i < SZ; i++){
if (s[i] == '.'){
end = i;
break;
}
}
// вывод 2го предложения
for(i = end + 2; i < SZ; i++){
printf("%c", s[i]);
}
printf(" ");
// вывод 1го предложения
for(i = 0; i <= end; i++){
printf("%c", s[i]);
}
system("pause");
}
После запуска программы вылетает ошибка:
Необработанное исключение в "0x5ba8de8f (msvcr100d.dll)" в "it_lab_6.exe": 0xC0000005: Нарушение прав доступа при записи "0xffffffcc".
с указанием на исходник файла input.c:
#ifndef _UNICODE
*(char *)pointer = (char)ch;
pointer = (char *)pointer + 1;