Форум программистов, компьютерный форум CyberForum.ru

Вывести все буквы м и н в предложении - C++

Восстановить пароль Регистрация
 
vanyasky
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 22
01.06.2011, 12:30     Вывести все буквы м и н в предложении #1
Дано предложение. Вывести все буквы м и н в нем.

''На улице было темно и холодно.''
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2011, 12:30     Вывести все буквы м и н в предложении
Посмотрите здесь:

Все буквы каждого слова в предложении записать в обратном порядке и распечатать получившееся предложение C++
Вывести все слова во введенном предложении C++
C++ 4. Найдите все слова в предложении, содержащие по две буквы М, не стоящие рядом, и определите их количество
C++ В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”
C++ В предложении удалить все вхождения “th”. Результат вывести на экран
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
01.06.2011, 12:54     Вывести все буквы м и н в предложении #2
Алгоритм примерно такой
C++
1
2
3
4
5
6
7
8
9
10
#include <cstdio>
#include <cstring>
int main(){
    char s[]="На улице было темно и холодно.";
    printf("%s\n",s);
        for (int i=0; i < strlen(s); i++)
        if (s[i]!='м'&&s[i]!='н') s[i]=' ';  //заменяем все ненужные символы на пробелы
    printf("%s",s);
    return 0;
}
Но на русском шрифте не катит.
vanyasky
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 22
01.06.2011, 13:06  [ТС]     Вывести все буквы м и н в предложении #3
блииин плохо что не понимает русский))ну и на этом спасибо+
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
01.06.2011, 13:11     Вывести все буквы м и н в предложении #4
setlocale(LC_ALL,"Russian");
и будет понимать
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
01.06.2011, 13:16     Вывести все буквы м и н в предложении #5
Ну это где как...
В линуксе не понимает именно 'м' и 'н', строка сама нормально выводится
А если заменить их на -67 и -68, то выводит вместо них какие-то кракозябры и берет откуда-то лишние пробелы, хотя я и не меняю их значения, просто сравниваю
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
01.06.2011, 13:18     Вывести все буквы м и н в предложении #6
Используйте unsigned char.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
01.06.2011, 13:30     Вывести все буквы м и н в предложении #7
Самому интересно стало... А как тут unsigned char поможет?
Без него переполнение, но оно в общем то не страшно.
g++ Вообще такое выдает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
diagon@shadeware:~$ cat gean.cpp
#include <cstdio>
#include <cstring>
int main(){
        char s[]="На улице было темно и холодно.";
        printf("%s\n",s);
        char m='м',n='н';
        printf("%c=%d\n",m,(int)m);
        printf("%c=%d\n",n,(int)n);
        for (unsigned i=0; i < strlen(s); i++)
                if (s[i]!=-67&&s[i]!=-68) s[i]=' ';  
        printf("%s",s);
        return 0;
}
diagon@shadeware:~$ g++ gean.cpp
gean.cpp:6:16: warning: multi-character character constant
gean.cpp:6:23: warning: multi-character character constant
gean.cpp: In function ‘int main():
gean.cpp:6:16: warning: overflow in implicit constant conversion
gean.cpp:6:23: warning: overflow in implicit constant conversion
diagon@shadeware:~$ ./a.out
На улице было темно и холодно.
пїЅ=-68
пїЅ=-67
                              пїЅ пїЅ                 пїЅ   diagon@shadeware:~$
Интересно, что исходную строку он выводит нормально, а как только я пробегаюсь по ней циклом, то изменяет ее на кракозябры.
P.S. 65533 -это �, в тэге почему-то некорректно отображается
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2011, 13:36     Вывести все буквы м и н в предложении
Еще ссылки по теме:

C++ Вывести все перестановки слов в предложении. В чем ошибка?
C++ Вывести все возможные перестановки слов в предложении
C++ Вывести слова в предложении по номеру первой буквы в алфавите

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
01.06.2011, 13:36     Вывести все буквы м и н в предложении #8
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cstdio>
#include <cstring>
#include <iostream>
 
int main(){
    setlocale(LC_ALL,"Russian");
        char s[]="На улице было темно и холодно.";
        printf("%s\n",s);
        for (int i=0; i < strlen(s); i++)
                if (s[i]!='м'&&s[i]!='н') s[i]=' ';  //заменяем все ненужные символы на пробелы
        printf("%s",s);
        return 0;
}
странно но на VS такое работает на ура....
Yandex
Объявления
01.06.2011, 13:36     Вывести все буквы м и н в предложении
Ответ Создать тему
Опции темы

Текущее время: 19:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru