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

Строка, замена гласных - C++

Восстановить пароль Регистрация
 
romanu416
0 / 0 / 0
Регистрация: 29.10.2013
Сообщений: 15
17.02.2014, 16:04     Строка, замена гласных #1
сделал программу чтобы заменяло все гласные на 3 а преподаватель усложнил задачу и надо заменить на 33 и с тем проблема два числа писать не хочет
помогите бидь Пожалуйста


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
 
int main(){ 
 char arr[100]; 
 
 cout << "\nDo enter any string but no more then "
 << 100-1 << " symbols\n";
 
 cin >> arr; 
 int i=0;
 while (arr[i]!='\0')
 
 if (arr[i]=='e'||arr[i]=='y'||arr[i]=='u'||arr[i]=='i'||arr[i]=='o'||arr[i]=='a')
 {  arr[i]='3';
      } 
          
 else i++; 
 
 
 cout << endl << arr << endl; 
 cin.get();
 return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2014, 16:04     Строка, замена гласных
Посмотрите здесь:

Строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или согласных (Написано на Паскале, переделать под C++) C++
C++ С клавиатуры вводится текстовая строка на русском языке. Найдите количество гласных и согласных букв.
C++ Строка - обрезка, замена, перенос
Замена гласных C++
C++ Сделать что-бы строка бралась с файла (определить отношение количества гласных букв в предложении к согласным)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
17.02.2014, 16:50     Строка, замена гласных #2
romanu416, string не пойдёт?
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 <string>
 
int main()
{
    std::string s;
    std::cout << "Type string: ";
    getline(std::cin, s);
    
    for(int i = 0; i < s.size(); i++)
    {
        if(s[i] == 'e' || s[i] == 'y' ||
           s[i] == 'u' || s[i] == 'i' ||
           s[i] == 'o' || s[i] == 'a')
        {
            s.replace(i, 1, 2, '3');
        }
    }
    
    std::cout << s << "\n\n";
    
    system("pause");
    return 0;
}
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
17.02.2014, 16:53     Строка, замена гласных #3
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
#include <iostream.h>
 
int main(){ 
 char arr[1000]; 
 
 cout << "\nDo enter any string but no more then "
 << 100-1 << " symbols\n";
 
 cin >> arr; 
 int i=0,n=0;
 while (arr[i]!='\0') n++;
 
for(int i=0;i<n;i++) 
 if (arr[i]=='e'||arr[i]=='y'||arr[i]=='u'||arr[i]=='i'||arr[i]=='o'||arr[i]=='a')
 {  
for(int j=n-1;j>=i;j--)
arr[j+1]=arr[j];
n++;
arr[i]='3';arr[i+1]='3';
i++;
 } 
          
 
 
 cout << endl << arr << endl; 
 cin.get();
 return 0;
}
stikkas
 Аватар для stikkas
19 / 19 / 6
Регистрация: 26.01.2014
Сообщений: 56
17.02.2014, 16:55     Строка, замена гласных #4
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
#include <iostream>
#include <cstring>
using namespace std;
 
 
bool shift(char *arr, int size, int where) {
    int real_size = 0;
    for (int i = 0; i < size; ++i) {
        if (arr[i] == '\0') {
            real_size = i;
            break;
        }
    }
    if (size - real_size > 0) {
        char *tmp = new char[real_size - where];
        memcpy(tmp, arr + where + 1, real_size - where);
        memcpy(arr + where + 2, tmp, real_size - where);
        delete [] tmp;
        return true;
    } else {
        // Некуда сдвигать
        return false;
    }
}
 
int main() {
    const int size = 100;
    char arr[size];
    cin.getline(arr, size);
    int i = 0;
    while (arr[i] != '\0') {
        if (arr[i]=='e'||arr[i]=='y'||arr[i]=='u'||arr[i]=='i'||arr[i]=='o'||arr[i]=='a')
         {
            if (shift(arr, size, i)) {
                arr[i] = arr[i + 1] = '3';
                ++i;
            }
 
          }
        ++i;
    }
    cout << arr << endl;
    return 0;
}
как-то так, только надо проверить еще на пограничных условиях
Yandex
Объявления
17.02.2014, 16:55     Строка, замена гласных
Ответ Создать тему
Опции темы

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