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

По теме Строки. - C++

Восстановить пароль Регистрация
 
robotika
0 / 0 / 0
Регистрация: 16.02.2011
Сообщений: 4
12.05.2011, 10:09     По теме Строки. #1
Привет всем! Помогите пожалуйста с задачкой.Никак немогу понять что идет к чему.

1.Написать функцию для замены первых букв во всех словах на прописные буквы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2011, 10:09     По теме Строки.
Посмотрите здесь:

C++ По теме СТРУКТУРЫ
Литература по теме Отладки программ C++
Задача по теме функции C++
C++ Задача по теме карта (map)
C++ Угадайте язык по коду. (Не по теме Си++)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
12.05.2011, 12:00     По теме Строки. #2
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
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <cctype>
 
void f(char *str);
 
int main(int argc, char *argv[])
{
    char a[] = "asd asd er weds f sdfscv xc xcv xfdfsd  fhjh kjku.";
    
    f(a);
             
    system("PAUSE");
    return EXIT_SUCCESS;
}
void f(char *str)
{
    char c;
    int k=strlen(str);
    for(int i=0; i<k; i++)
    {
        if(isalpha(str[i]) && str[i-1]==' ' || str[i-1]==0)
        {
            c=toupper(str[i]);
            str[i] = c;            
        }
    }
    std::cout << str << "\n";
}
eXXXXXXXXXXX
30 / 30 / 3
Регистрация: 24.02.2011
Сообщений: 126
12.05.2011, 12:32     По теме Строки. #3
for(int i=0; i<k; i++)
{
if(isalpha(str[i]) && str[i-1]==' ' || str[i-1]==0)
{
c=toupper(str[i]);
str[i] = c;
}
}
Вот не надо так писать)
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
12.05.2011, 12:35     По теме Строки. #4
eXXXXXXXXXXX, почему? можете объяснить?
eXXXXXXXXXXX
30 / 30 / 3
Регистрация: 24.02.2011
Сообщений: 126
12.05.2011, 12:38     По теме Строки. #5
grrrrr, ну вы обращаетесь к адресу str-1, там может быть что угодно, и ещё, первая буква первого слова не становится прописной)

Добавлено через 1 минуту
Цитата Сообщение от grrrrr Посмотреть сообщение
str[i-1]==0
а зачем эта проверка?
можно написать так:
C++
1
2
3
4
5
6
7
8
9
10
11
    for(int i=0; i<k; i++)
    {
        if(isalpha(str[i]))
        {
            if (i==0 ||  str[i-1]==' ')
            {
                    c=toupper(str[i]);
                    str[i] = c;           
            } 
        }
    }
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
12.05.2011, 13:08     По теме Строки. #6
У меня на выходе, первая буква - прописная. А писал так, потому что видел где-то подобный пример. Ваш пример мне нравится - более читаем что ли. =)
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
12.05.2011, 13:29     По теме Строки. #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
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
#define DELIM " ,.?!:;"
 
void func(char* s)
{
    while(*s)
    {
        if(!strchr(DELIM, *s))
        {
            *s = toupper(*s);
            do ++s; while(*s && !strchr(DELIM, *s));
        }
        else ++s;
    }
}
 
int main()
{
    char str[256];
 
    gets(str);
    func(str);
    puts(str);
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2011, 00:08     По теме Строки.
Еще ссылки по теме:

Задача по теме Двумерные массивы C++
C++ Задачи по теме «Целочисленная арифметика
C++ К теме кроссплатформенности

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

Или воспользуйтесь поиском по форуму:
Хитрый_КОТ
 Аватар для Хитрый_КОТ
3 / 3 / 1
Регистрация: 21.11.2010
Сообщений: 30
26.05.2011, 00:08     По теме Строки. #8
А еще как в русском тексте такую функцию реализовать, а то он только с английским работает только
Yandex
Объявления
26.05.2011, 00:08     По теме Строки.
Ответ Создать тему
Опции темы

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