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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vanyasky
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 22
#1

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

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

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

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

Все буквы каждого слова в предложении записать в обратном порядке и распечатать получившееся предложение C++
Вывести все слова во введенном предложении C++
C++ Найдите все слова в предложении, содержащие по две буквы М, не стоящие рядом, и определите их количество
Вывести все слова в предложении в которых нет повторяющихся букв C++
C++ В предложении удалить все вхождения “th”. Результат вывести на экран
C++ Вывести все буквы в нижнем регистре
В предложении S1 найти все слова, которые есть в предложении S2 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 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,238
Завершенные тесты: 2
01.06.2011, 13:11     Вывести все буквы м и н в предложении #4
setlocale(LC_ALL,"Russian");
и будет понимать
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
01.06.2011, 13:16     Вывести все буквы м и н в предложении #5
Ну это где как...
В линуксе не понимает именно 'м' и 'н', строка сама нормально выводится
А если заменить их на -67 и -68, то выводит вместо них какие-то кракозябры и берет откуда-то лишние пробелы, хотя я и не меняю их значения, просто сравниваю
neske
1455 / 822 / 68
Регистрация: 26.03.2010
Сообщений: 2,810
01.06.2011, 13:18     Вывести все буквы м и н в предложении #6
Используйте unsigned char.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 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++ Вывести слова в предложении по номеру первой буквы в алфавите
Вывести все буквы А из заданной строки C++
Напечатать все согласные буквы, встречающиеся в данном предложении C++

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

Или воспользуйтесь поиском по форуму:
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,238
Завершенные тесты: 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     Вывести все буквы м и н в предложении
Ответ Создать тему
Опции темы

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