Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
vanyasky
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 22
#1

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

01.06.2011, 12:30. Просмотров 579. Ответов 7
Метки нет (Все метки)

Дано предложение. Вывести все буквы м и н в нем.

''На улице было темно и холодно.''
http://www.cyberforum.ru/cpp-beginners/thread913732.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2011, 12:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывести все буквы м и н в предложении (C++):

Напечатать все согласные буквы, встречающиеся в данном предложении
Напечатать все согласные буквы, встречающиеся в данном предложении. Каждую...

Вывести слова в предложении по номеру первой буквы в алфавите
Написать программу ввода-вывода текста.Каждое слово в предложении выводить по...

Все буквы каждого слова в предложении записать в обратном порядке и распечатать получившееся предложение
помогите пожалуйста написать программу: "Все буквы каждого слова в предложении...

Найдите все слова в предложении, содержащие по две буквы М, не стоящие рядом, и определите их количество
Найдите все слова в предложении, содержащие по две буквы М, не стоящие рядом, и...

Все буквы каждого слова в предложении записать в обратном порядке и распечатать предложения, что получилось
Все буквы каждого слова в предложении записать в обратном порядке и распечатать...

7
diagon
Higher
1937 / 1203 / 120
Регистрация: 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;
}
Но на русском шрифте не катит.
1
vanyasky
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 22
01.06.2011, 13:06  [ТС] #3
блииин плохо что не понимает русский))ну и на этом спасибо+
0
m1Rr0r
247 / 230 / 45
Регистрация: 05.02.2010
Сообщений: 3,283
Завершенные тесты: 2
01.06.2011, 13:11 #4
setlocale(LC_ALL,"Russian");
и будет понимать
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
01.06.2011, 13:16 #5
Ну это где как...
В линуксе не понимает именно 'м' и 'н', строка сама нормально выводится
А если заменить их на -67 и -68, то выводит вместо них какие-то кракозябры и берет откуда-то лишние пробелы, хотя я и не меняю их значения, просто сравниваю
0
neske
1526 / 893 / 191
Регистрация: 26.03.2010
Сообщений: 3,073
01.06.2011, 13:18 #6
Используйте unsigned char.
0
diagon
Higher
1937 / 1203 / 120
Регистрация: 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 -это �, в тэге почему-то некорректно отображается
0
m1Rr0r
247 / 230 / 45
Регистрация: 05.02.2010
Сообщений: 3,283
Завершенные тесты: 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 такое работает на ура....
1
01.06.2011, 13:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2011, 13:36
Привет! Вот еще темы с решениями:

Вывести все слова во введенном предложении
помогите,пожалуйста,с лабой.ужвсно не успеваю все сделать,вот условие: ...

Вывести все возможные перестановки слов в предложении
С клавиатуры пишем предложение. Вывести все возможные перестановки тех слов в...

Вывести все перестановки слов в предложении. В чем ошибка?
Мне нужно разбить строку на слова, что я и сделал при помощи функции strtok, а...

В предложении удалить все вхождения “th”. Результат вывести на экран
Очень прошу помогите сделать,знаю она лёгкая,но сам не успеваю не чего((( ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru