2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 задача на си++
Сообщение02.06.2010, 20:14 
Из заданной строки символов удалить символы, отличные от русских букв и пробелов.
#include<iostream.h>
#include<conio.h>
#include<string.h>
const int MAX_LEN = 80;
int main() {
char first_s[MAX_LEN];
char second_s[MAX_LEN];
int i,n ;
cout << "Vvedite stroky ";
cin.getline(first_s,MAX_LEN);
cout << "Vvedite stroky ";
cin.getline(second_s,MAX_LEN);
n=strlen(first_s);
for (i=0;i<n+1;i++);
if ((first_s[i]==34) || (first_s[i]>127 && first_s[i]<176) ||(first_s[i]>223 && first_s[i]<240))
strcpy(second_s,first_s);
cout<< second_s;
getch();
return 0;}
что ей не нравится почему не выполняет(((

 
 
 
 Re: задача на си++
Сообщение03.06.2010, 14:46 
Вы разберитесь, что ваша программа должна делать. Сейчас она делает не то.
Имелось в виду, что if должен быть в цикле?

 
 
 
 Re: задача на си++
Сообщение04.06.2010, 00:46 
Аватара пользователя
to izi

Код читать неудобно используйте теги - [ code ] [ /code ]

Обязательно используйте отступы.

Решение должно быть с использованием возможностей именно C++ или подойдёт обычный C?

В какой кодировке должна быть входная строка?

 
 
 
 Re: задача на си++
Сообщение13.06.2010, 11:16 
izi в сообщении #326912 писал(а):
Из заданной строки символов удалить символы, отличные от русских букв и пробелов.


говнокод просто чудовищный...

; после for и цикл получается пустой (современный компилятор будет давать ошибку на использование i вне цикла, старый (vs6) давал предупреждение).

код пробела 32, а не 34 если уж на то пошло, а вообще, прописывать коды букв литералами жуткий моветон. написали б ' ' и такой ошибки бы не было.

дальше. вопрос кодировки. в программу жестко забита CP866, досовская кодировка. в 2010 году это разве не смешно?? сейчас на дворе Windows, а еще юникод бывает.. да даже в CP866, буква Ё не правильно обрабатывается.

ну и наконец strcpy в цикле на каждый символ - это ж вообще кошмар и дикость.

правильный ответ: посимвольное копирование из массива в массив с проверкой _isalpha_l

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group