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

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

Войти
Регистрация
Восстановить пароль
 
 
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 161
#1

Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А - C++

10.11.2013, 19:08. Просмотров 1047. Ответов 33
Метки нет (Все метки)

Дана задача написать, чтобы с++ делила слово на слоги в том месте где стоит буква А, например к слову КАЗАХСТАН, отсюда чтобы с++ должна была написать КА-ЗА-ХСТА-Н
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2013, 19:08     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А
Посмотрите здесь:

Почему Visual Studio показывает ошибку в том месте, где ее нет? - C++
Почему Visual Studio показывает ошибку в том месте, где ее нет?

Выполнить кольцевой сдвиг элементов массива так чтобы его первый максимальный элемент оказался на k-том месте - C++
Дан одномерный массив размерность n и число k. Если в исходном массиве чисел больше, чем k, то в массиве выполнить кольцевой сдвиг...

Разбить введенное слово на слоги - C++
Разбить введенное слово на слоги так, чтобы в первом слогу было больше чем одна буква и оканчивалась на гласную, а второй слог содержал...

Доделать и исправить. Дано слово из 12 букв. Поменять местами его трети: первую треть разместить на месте третьей, вторую на месте первой и 3 на 2 - C++
#include<stdio.h> #include<iostream.h> int main(void) { int i,j; char slovo; for(i=0;i<4;i++) { for(j=0;j<3;j++) ...

(Только простой вариант)Дано слово и буква.Сколько раз эта буква встречается в слове - C++
Дано слово и буква.Сколько раз эта буква встречается в слове.

Узнать что стоит на определённом месте (0 или 1) - C++
Уважаемые программисты! Помогите исправить код или решить задачу. Представим себе бесконечную последовательность цифр, составленную из...

Определить, какая цифра стоит на заданном месте в последовательности - C++
всем вечер добрый. интересует алгоритм решения к двум задачам. честно говоря, довольно долго думал, но ничего дельного я не придумал. ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
10.11.2013, 20:56     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #21
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main (){
  char str[100];
  puts("Input string:");
  gets(str);
  for (char* i=str; *i; i++)
    if(*i=='A'){
      char tmp='-';
      for (j=i+1; *(j+1); j++)
        if(tmp!=*j)
          tmp^=*j^=tmp^=*j;//обмен *j и tmp можно заменить на более понятный k=*j; *j=tmp; tmp=k;
    }
  puts(str);
  return 0;
}
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 161
10.11.2013, 21:05  [ТС]     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #22
ну что там люди поможете или нет?
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.11.2013, 21:16     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #23

Не по теме:

Цитата Сообщение от Folko Посмотреть сообщение
string str и char a[10] все таки объявляются по разному
да какая разница как они объявляются. Внутри std::string всё тот же массив char'ов.


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
#include <iostream>
#include <cstdlib>
#include <string>
#include <clocale>
 
int main()
{
    setlocale( LC_ALL, "Rus" );
 
    std::string habitat = "Казахстан";
 
    std::size_t pos = 0;
 
    while( std::string::npos != (pos = habitat.find( 'а', pos )) )
    {
        ++pos;
        habitat.insert( pos, "-" );
    }
 
    std::cout << habitat << std::endl;
 
    std::system("pause");
    return 0;
}
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 161
10.11.2013, 21:21  [ТС]     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #24
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main (){
  char str[100];
  puts("Input string:");
  gets(str);
  for (char* i=str; *i; i++)
    if(*i=='A'){
      char tmp='-';
      for (j=i+1; *(j+1); j++)
        if(tmp!=*j)
          tmp^=*j^=tmp^=*j;//обмен *j и tmp можно заменить на более понятный k=*j; *j=tmp; tmp=k;
    }
  puts(str);
  return 0;
}


Кузя у тебя здесь выдаёт ошибка for (j=i+1; *(j+1); j++)
codeblock пишет error: 'j' was not declared in this scope|
||=== Build finished: 1 errors, 0 warnings ===|

Добавлено через 1 минуту
по ходу ты там не написал так int j,i,A
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
10.11.2013, 21:24     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #25
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main (){
  char str[100];
  puts("Input string:");
  gets(str);
  for (char* i=str; *i; i++)
    if(*i=='A'){
      char tmp='-';
      for (char* j=i+1; *(j+1); j++)
        if(tmp!=*j)
          tmp^=*j^=tmp^=*j;//обмен *j и tmp можно заменить на более понятный k=*j; *j=tmp; tmp=k;
    }
  puts(str);
  return 0;
}
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 161
10.11.2013, 21:35  [ТС]     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #26
Цитата Сообщение от Tulosba Посмотреть сообщение

Не по теме:


да какая разница как они объявляются. Внутри std::string всё тот же массив char'ов.


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
#include <iostream>
#include <cstdlib>
#include <string>
#include <clocale>
 
int main()
{
    setlocale( LC_ALL, "Rus" );
 
    std::string habitat = "Казахстан";
 
    std::size_t pos = 0;
 
    while( std::string::npos != (pos = habitat.find( 'а', pos )) )
    {
        ++pos;
        habitat.insert( pos, "-" );
    }
 
    std::cout << habitat << std::endl;
 
    std::system("pause");
    return 0;
}

а напиши ка без Казахстана чтобы введённое любое слово было так разделено дефисами сможешь???

Добавлено через 10 минут
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main (){
  char str[100];
  puts("Input string:");
  gets(str);
  for (char* i=str; *i; i++)
    if(*i=='A'){
      char tmp='-';
      for (char* j=i+1; *(j+1); j++)
        if(tmp!=*j)
          tmp^=*j^=tmp^=*j;//обмен *j и tmp можно заменить на более понятный k=*j; *j=tmp; tmp=k;
    }
  puts(str);
  return 0;
}


у меня че-то не так при введений этого
вот смотри скриншоты

http://fotohost.kz/images/2013/11/10/7zqfJ.jpg
http://fotohost.kz/images/2013/11/10/3vYKQ.jpg

Добавлено через 49 секунд
не делит слово Казахстан
Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
10.11.2013, 21:35     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #27
Код для Microsoft Visual Studio C++ 2010 Express
Заголовочный файл stdafx.h
C++
1
2
3
4
5
6
7
8
9
10
#pragma once
 
#include "targetver.h"
 
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string>
#include <cstring>
#include <Windows.h>
Код программы
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
#include "stdafx.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    using namespace std;
    char str1[100] = {0}, str2[100] = {0}, letter;
    cout << "Введите строку: ";
    cin.getline(str1, 100);
    cout << "Введите букву-разделитель: ";
    cin >> letter;
 
    int k = 0;
    for (unsigned long i = 0; i < strlen(str1); i++)
    {
        str2[k] = str1[i];
        if(str1[i] == letter)
        {
            ++k;
            str2[k] = '-';
        }
        ++k;
    }
 
    cout << "Преобразованная строка:\n";
    for (unsigned long i = 0; i < strlen(str2); i++)
    {
        cout << str2[i];
    }
    cout << "\n";
 
    system("PAUSE");
    return 0;
}
Чтобы консоль поддерживала русский шрифт:
Консоль --> Свойства --> Шрифт --> Lucida Console
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 161
10.11.2013, 21:37  [ТС]     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #28
Цитата Сообщение от Heidel Посмотреть сообщение
Код для Microsoft Visual Studio C++ 2010 Express
Заголовочный файл stdafx.h
C++
1
2
3
4
5
6
7
8
9
10
#pragma once
 
#include "targetver.h"
 
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string>
#include <cstring>
#include <Windows.h>
Код программы
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
#include "stdafx.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    using namespace std;
    char str1[100] = {0}, str2[100] = {0}, letter;
    cout << "Введите строку: ";
    cin.getline(str1, 100);
    cout << "Введите букву-разделитель: ";
    cin >> letter;
 
    int k = 0;
    for (unsigned long i = 0; i < strlen(str1); i++)
    {
        str2[k] = str1[i];
        if(str1[i] == letter)
        {
            str2[k+1] = '-';
            ++k;
        }
        ++k;
    }
 
    cout << "Преобразованная строка:\n";
    for (unsigned long i = 0; i < strlen(str2); i++)
    {
        cout << str2[i];
    }
    cout << "\n";
 
    system("PAUSE");
    return 0;
}
Чтобы консоль поддерживала русский шрифт:
Консоль --> Свойства --> Шрифт --> Lucida Console


для Visual Studio Express 2012 for Windows Desktop проканает?
или для codeblocks 10.05
Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
10.11.2013, 21:39     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #29
Цитата Сообщение от Бауыржан Посмотреть сообщение
для Visual Studio Express 2012 for Windows Desktop проканает?
или для codeblocks 10.05

Не по теме:

Попробуйте найти у себя мозг и немного им попользоваться)

Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 161
10.11.2013, 21:48  [ТС]     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #30
Всем огромное спасибо за труды! без вас я бы не смог написать)) но твое решение Heidel не запустилось никак, а вот пользователя Tulosba всё получилось как и ожидал я, но если бы было там не Казахстан, а если бы любое введённое слово с которой присутствует А делило бы, то было бы без базара отлично! Tulosba умеет делать шедевр ) спасибо ему огромное ! искренне желаю тебе процветания в сайберфоруме!
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.11.2013, 22:24     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #31
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
#include <iostream>
#include <cstdlib>
#include <string>
#include <clocale>
#include <Windows.h>
 
int main()
{
    setlocale( LC_ALL, "Rus" );
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    std::string habitat;
 
    std::getline( std::cin, habitat );
 
    std::size_t pos = 0;
 
    while( std::string::npos != (pos = habitat.find( 'а', pos )) )
    {
        ++pos;
        habitat.insert( pos, "-" );
    }
 
    std::cout << habitat << std::endl;
 
    std::system("pause");
    return 0;
}
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 161
10.11.2013, 22:30  [ТС]     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #32
У меня вот так выходит http://fotohost.kz/images/2013/11/11/40TZl.jpg почему?? что должен исправить ввожу чисто на русском а у меня такие иероглифы
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.11.2013, 22:37     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #33
Бауыржан, шрифт консоли поменяйте на lucida console.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2013, 22:42     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А
Еще ссылки по теме:

Как определить на четном или нечетном месте стоит цифра в числе? - C++
Как определить на четном или нечетном месте стоит цифра в числе? Не могу понять как определить это, если убирать по одной цифре в конце в...

Turbo Pascal -> C++ (подсчет суммы мест, на которых в словах текста стоит заданная буква) - C++
Задание. Написать программу для подсчета суммы мест, на которых в словах текста стоит заданная буква. program zadacha5; Var s, c:...

Каждая буква входит в слово не менее двух раз - C++
Используя класс string, решить задание: Дана строка. Между соседними словами - не менее одного пробела, за последним словом – точка....

Каждая буква входит в слово не менее двух раз (на си) - C++
Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Напечатать все слова, которые удовлетворяют следующему...

Найти самое длинное слово среди слов, вторая буква которых 'E' - C++
Дан символьный файл(имя вводится с клавиатуры). Найти самое длинное слово среди слов, вторая буква которых есть 'E'.Если слов с...


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

Или воспользуйтесь поиском по форуму:
Бауыржан
-18 / 1 / 0
Регистрация: 03.11.2013
Сообщений: 161
10.11.2013, 22:42  [ТС]     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А #34
оки ! thanks ! ой я же изучаю французский MERCI!!!

Добавлено через 7 секунд
=)))

Добавлено через 1 минуту
Большое спасибо получилось ты гений!!
Yandex
Объявления
10.11.2013, 22:42     Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А
Ответ Создать тему
Опции темы

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