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

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

Войти
Регистрация
Восстановить пароль
 
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
#1

Строка. модификация строки - C++

15.11.2010, 22:17. Просмотров 426. Ответов 0
Метки нет (Все метки)

Доброго времени суток! У меня есть маленькая ф-ция, которая должна удалять заглавные буквы. работала она у меня, определяя, находится ли итый символ в промежутке от А доЯ иА до ЗЕТ, заменяла на пробел, а потом уже удаляла его. но это очень длинный путь, попробовал упростить, не выводит результат, вроде должно быть правильно...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
    char str[128];
    cout<<"Vvedite vash text"<<endl; 
    cin>>str;//gets(str);
 
    
        int n=strlen(str),i=0,j;
        for (j=0; j<n; j++ )
        {if(isupper(unsigned char(str[i]))) //добавил ансайнед, чтоб определяло и в русском языке заглавную
            {str[i++] = str[j];}
        
        if( i < n )
            str[i] = '\0';}
 
 
cout<<str;
}
заранее спасибо за помощь!

Добавлено через 2 часа 7 минут
Если кому интересно, то я сделал ее уже вот так: первая - замена латиницы * и второе -удаление больших букв

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
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <string>
 
using std::cout;
using std::cin;
using std::endl;
int zvezda()
{
    char s[128];
    cout<<"Vvedite vash text"<<endl; 
    cin>>s;//gets(s);
    for(int i=0; i<strlen(s);i++)
        {if(s[i]>='a'&& s[i]<='z'|| s[i]>='A'&& s[i]<='Z')
        s[i]='*';}
    cout<<s;
    return  0;}
void up()
{
        char str[128];
        cout<<"Vvedite vash text"<<endl; 
        cin>>str;//gets(str);
 
        
            int n=strlen(str),i=0,j;
        for (j=0; j<n; j++ )
        {if(islower(unsigned char(str[j])))
           str[i++] = str[j];
        if (i<n)
            str[i]='\0';
        }
cout<<str;
}
int main()
{ 
int sw;
cout<<"1_Zamena latinicy znakom *"<<endl<<"2_Udalenie bolshy bukw"<<endl<<"0 dlya vyhoda"<<endl<<"Sdelaite swoi vybor: ";
cin>> sw;
switch(sw)
{
    case 1:zvezda();break;
    case 2:up();break;
    case 0:return 0;break;
}
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2010, 22:17     Строка. модификация строки
Посмотрите здесь:

C++ Является ли первая строка циклическим сдвигом второй строки
строки, имеется строка, содержащая буквы латинского алфавита.......... C++
Дана строка. Удалить из строки повторные слова. C++
Пустая строка против строки нулевой длины C++
Циклическая строка. Определить минимально возможную длину исходной строки C++
C++ Функция: проверить, является ли строка str1 подстрокой строки str2
C++ Задачка на строки.Дана строка, состоящая из слов
C++ Дана строка s, содержащая n символов s1, s2, . , sn,. Зеркальное отражение строки
C++ Строка символов s1, s2, . , sn. Зеркальное отражение строки без последнего символа
Не считывается строка из строки C++
C++ Вводися строка. Удвоить каждый символ строки
Дана строка из букв и цифр. Удалить из строки все буквы. C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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