Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
0 / 0 / 1
Регистрация: 24.09.2014
Сообщений: 7

Проверить правильность написания сочетаний «жи», «ши», «ча», «ща»

26.09.2014, 21:29. Показов 5100. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Последовательностью слов задана строка. Проверить правильность написания сочетаний «жи», «ши», «ча», «ща», «чу» и «щу». Если надо, то исправить ошибки их написания. Что мне надо подправить?
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "conio.h"
#include "locale.h"
#include "string.h"
#include "windows.h"
 
 
int main() {
    setlocale(LC_ALL, ".866");
    char str[256];
    char str1[] = "жы";
    char str2[] = "жи";
    char str3[] = "шы";
    char str4[] = "ши";
    char str5[] = "чя";
    char str6[] = "ча";
    char str7[] = "щя";
    char str8[] = "ща";
    char str9[] = "чю";
    char str10[] = "чу";
    char str11[] = "щю";
    char str12[] = "щу";
    int j, i;
    int islower(char str);
    wprintf(L"%s", L"Введите строку для проверки:\n");
    gets_s(str);
    for (i = 0; i < strlen(str); i++)
    {
        for (j = 0; j < 2; j++)
        {
            if (str[i] == str1[j])
                str[i] = str2[j];
            else printf("Error\n\n");
            if (str[i] == str3[j])
                str[i] = str4[j];
            if (str[i] == str5[j])
                str[i] = str6[j];
            if (str[i] == str7[j])
                str[i] = str8[j];
            if (str[i] == str9[j])
                str[i] = str10[j];
            if (str[i] == str11[j])
                str[i] = str12[j];
        }
    }
    wprintf(L"%s", L"Строка после проверки:\n");
    printf(str);
    wprintf(L"%s", L"\n");
    _getch();
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.09.2014, 21:29
Ответы с готовыми решениями:

Проверить правильность написания в тексте сочетаний ЖИ и ШИ
Проверить правильность написания в тексте сочетаний ЖИ и ШИ. В случае ошибки выдать сообщение на экран.

Проверить текст на правильность написания сочетаний
Здравствуйте! Помогите написать программу на C# : Дана последовательность слов. Проверить правильность и исправить ошибки написания...

Проверить правильность написания сочетаний "жи" и "ши".Если надо, то исправить и вывести на экран
var s: string; i, k,err: byte; begin WriteLn('Введите строку:'); ReadLn(s); for i:=1 to length(s)-1 do begin ...

11
 Аватар для lawr
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
27.09.2014, 00:07
может, stdio.h подключить чтобы использовать gets_s
0
0 / 0 / 1
Регистрация: 24.09.2014
Сообщений: 7
27.09.2014, 00:59  [ТС]
Нет там ошибка в кодировке. Когда в ручную пишешь там жыр или еще что-то то он его вроде бы сохраняет адекватно. но совпадений не может найти. Если бы кто-то знал как можно установить кодировку во время консоли или как по другому сделать.
чтобы сделать полностью программу нужно оттолкнуться от малого. то есть вот от этого кода.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "string.h"
#include "windows.h"
 
int main() {
    setlocale(LC_ALL,".866");
    char str[256];
    char str1[] = "жы";
    char str2[] = "жи";
    char str3[] = "шы";
    char str4[] = "ши";
    char str5[] = "чя";
    char str6[] = "ча";
    char str7[] = "щя";
    char str8[] = "ща";
    char str9[] = "чю";
    char str10[] = "чу";
    char str11[] = "щю";
    char str12[] = "щу";
    wprintf(L"%s", L"Введите строку для проверки: ");
    fgets(str,256,stdin);
    
    if (str[0] == 'ж'){
        if (str[1] == 'ы') {
            str[1] = 'и';
        }
    }
    if(str[0] == 'j'){
        if (str[1] == 'i') {
            str[1] = 'e';
        }
    }
    
    wprintf(L"%s", L"Строка после проверки: ");
    printf(str);
    wprintf(L"%s", L"\n");
    _getch();
    return 0;
}
Самое главное что программа работает на АНГЛИЙСКОМ Вот попробуйте ввести слово jik как вы сразу увидите jek. Значит проблема отображение русской кодировки.
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
27.09.2014, 04:38
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <string.h>
 
 
using namespace std;
 
 
int main()
{
setlocale(LC_ALL,"Russian");
setlocale(LC_CTYPE, ".1251");
 
const int N=7; //Коичество слогов в массиве жиши
    char str1[][N] ={"чя","шя","чю","щю","жы","щы","щы"};
    char str2[][N] ={"ча","ща","чу","щу","жи","ши","щи"};
 
 
    char S[256];   gets(S);
 
    char t[3]={0,0,0};
 
    for (int i=0;i<N;i++){
     for (int j=0;j<strlen(S);j++){
        strncpy(t,S+j,2);
        OemToChar(t,t);
        if (strcmp(t,str1[i])==0) {
              switch (i){
                 case 0:case 1: S[j+1]=-96;break; //а
                 case 2:case 3: S[j+1]=-29;break; //у
                 case 4:case 5: S[j+1]=-88;break; //и
              }
        }
     }
    }
 
 
cout<<"\n";
OemToChar(S,S);
cout<<"Строка после проверки:\n "<<S<<"\n\n";
return 0;
}
В массив можешь добавить, например, слоги с большой буквы. Только при добавлении нужно размер N увеличивать. Числа - это символьные коды символа. Если не знаешь код, читаешь символ с клавиатуры, потом приводишь его к int (самый простой способ, наверное).

Не по теме:

Правла на Щы Щи нету , но найдите мне слово такое.

Миниатюры
Проверить правильность написания сочетаний «жи», «ши», «ча», «ща»  
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.09.2014, 04:54
Цитата Сообщение от Baosauman Посмотреть сообщение
Если бы кто-то знал как можно установить кодировку во время консоли
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}
В свойствах консоли выбрать шрифт: Lucida Console.
Установка шрифта Lucida Console
0
0 / 0 / 1
Регистрация: 24.09.2014
Сообщений: 7
27.09.2014, 14:14  [ТС]
Ошибка не работает у меня!
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.09.2014, 14:31
Цитата Сообщение от Baosauman Посмотреть сообщение
Ошибка не работает у меня!
К кому обращаетесь? Что не работает?
0
0 / 0 / 1
Регистрация: 24.09.2014
Сообщений: 7
28.09.2014, 15:07  [ТС]
Решил задание вот готовый результат!
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include "conio.h"
#include "locale.h"
#include "string.h"
#include "windows.h"
 
int main() {
    setlocale(LC_ALL,".866");
    wchar_t str[256];
    wchar_t str1[] = L"жы", str2[] = L"жи", str3[] = L"шы", str4[] = L"ши", str5[] = L"чя", str6[] = L"ча", str7[] = L"щя", str8[] = L"ща", str9[] = L"чю", str10[] = L"чу", str11[] = L"щю", str12[] = L"щу";
    wprintf(L"%s", L"Введите строку для проверки: ");
    fgetws(str,256,stdin);
    for (int i = 0; i < wcslen(str); i++)
    {
        for (int j = 0; j < 2; j++) {
            if (str[i] == str1[j]){
                if (str[i] != str2[j]) {
                    str[i] = str2[j];
                }
            }
            if (str[i] == str3[j]){
                if (str[i] != str4[j]) {
                    str[i] = str4[j];
                }
            }
            if (str[i] == str5[j]){
                if (str[i] != str6[j]) {
                    str[i] = str6[j];
                }
            }
            if (str[i] == str7[j]){
                if (str[i] != str8[j]) {
                    str[i] = str8[j];
                }
            }
            if (str[i] == str9[j]){
                if (str[i] != str10[j]) {
                    str[i] = str10[j];
                }
            }
            if (str[i] == str11[j]){
                if (str[i] != str12[j]) {
                    str[i] = str12[j];
                }
            }
        }
    }
    wprintf(L"%s", L"Строка после проверки: ");
    wprintf(str);
    wprintf(L"%s", L"\n");
    _getch();
    return main();
}
Добавлено через 14 часов 29 минут
Вот 100% рабочий код в прошлом коде он не правильно работал все буквы менял!!!
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "string.h"
#include "windows.h"
 
int main() {
    setlocale(LC_ALL,".866");
    wchar_t str[256] = L"";
    wchar_t str1[] = L"жы", str2[] = L"жи", str3[] = L"шы", str4[] = L"ши", str5[] = L"чя", str6[] = L"ча", str7[] = L"щя", str8[] = L"ща", str9[] = L"чю", str10[] = L"чу", str11[] = L"щю", str12[] = L"щу";
    wprintf(L"%s", L"Введите строку для проверки: ");
    wprintf(L"%s", L"\n");
    fgetws(str,256,stdin);
    for (int i = 0; i < wcslen(str); i++){
        for (int j = 0; j < wcslen(str1); j++) {
            if (str[i] == str1[j]){
                if (str[i + 1] == str1[j + 1]) {
                    str[i + 1] = str2[j + 1];
                }
            }
            if (str[i] == str3[j]){
                if (str[i + 1] == str3[j + 1]) {
                    str[i + 1] = str4[j + 1];
                }
            }
            if (str[i] == str5[j]){
                if (str[i + 1] == str5[j + 1]) {
                    str[i + 1] = str6[j + 1];
                }
            }
            if (str[i] == str7[j]){
                if (str[i + 1] == str7[j + 1]) {
                    str[i + 1] = str8[j + 1];
                }
            }
            if (str[i] == str9[j]){
                if (str[i + 1] == str9[j + 1]) {
                    str[i + 1] = str10[j + 1];
                }
            }
            if (str[i] == str11[j]){
                if (str[i + 1] == str11[j + 1]) {
                    str[i + 1] = str12[j + 1];
                }
            }
        }
    }
    wprintf(L"%s", L"Строка после проверки: ");
    wprintf(str);
    wprintf(L"%s", L"\n");
    _getch();
    return 0;
}
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
28.09.2014, 16:34
Цитата Сообщение от Baosauman Посмотреть сообщение
Вот 100% рабочий код в прошлом коде он не правильно работал все буквы менял!!!
исключения из правил никто не отменял. Есть такие слова, как жюри, парашют...
0
0 / 0 / 1
Регистрация: 24.09.2014
Сообщений: 7
02.10.2014, 23:10  [ТС]
Какие исключение ты точно русский язык учил? При чем тут ЖЮРИ ПАРАШЮТ???
0
03.10.2014, 19:55

Не по теме:

Цитата Сообщение от Baosauman Посмотреть сообщение
Какие исключение ты точно русский язык учил? При чем тут ЖЮРИ ПАРАШЮТ???
Учил, албанский!

0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
03.10.2014, 21:24
Baosauman, используй юникод или копай в сторону CharToOem
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.10.2014, 21:24
Помогаю со студенческими работами здесь

Проверить правильность написания кода
Пример:k=45,7-1/4*sin2+(th1/sin5)log 7 (по основанию 5); f=10ln3/ch4*(arcsin1/3+arccos5/6)sec3; m=корень 3 степени(k*f), если k&lt;f;...

Проверить правильность написания предикатов
Проверьте пожалуйста ,правильно ли я записала выражения на языке предикатов, а то сомневаюсь я. Писать формулы здесь не умею, поэтому...

Проверить правильность написания кода
Приветствую всех.Взялся изучать шарп.Ребят правильно ли я прокоментировал этот код? (Заранее спасибо):

Проверить правильность написания чисел в тексте
Проверить правильность написания чисел в тексте. Встретившиеся в начале числе незначащие нули опустить. Исправленный текст напечатать.

Проверить правильность написания. Английский язык
Здравствуйте, я составила 7 предложений. Просьба проверить, есть ли в пересказе ошибки? 1) The pаper gives information on problems that...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru