Слова с прописной буквы с++ - Вопросы по С+
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Слова с прописной буквы с++

Регистрация
17 Июн 2013
Сообщения
89
Репутация
-3
Спасибо
0
Монет
0
Дана строка. Измените регистр символов в этой строке так, чтобы первая буква каждого слова была прописной, а остальные буквы — строчными. Словом называется последовательность строчных или прописных латинских букв. Все остальные символы являются разграничителями между словами.



Ввод: --aBVf---sda

Вывод: --Abvf---Sda



Помогите, сижу второй день над этой задачей, никак решить не могу
 
Регистрация
8 Ноя 2013
Сообщения
78
Репутация
0
Спасибо
0
Монет
0
#include
#include
#include
#include
using namespace std;
void toCamel(string & s) {
bool b = true;
for(auto it = s.begin(); it != s.end(); ++it) {
if (isalpha(*it))
{
*it = b ? toupper(*it): tolower(*it);
b = false;
}
else
b = true;
}
}
int main()
{
{
string s = "hEllo,world!and1961yeAR";
toCamel(s);
assert(s == "Hello,World!And1961Year");
}
{
string s = "one,two";
toCamel(s);
assert(s == "One,Two");
}
{
string s = "1969year";
toCamel(s);
assert(s == "1969Year");
}
 
Регистрация
16 Окт 2013
Сообщения
75
Репутация
0
Спасибо
0
Монет
0
можно, например, так вывести твою строку:

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
int main()
{
char text[256] = {0},
*filter = " ,.;:";
printf("Enter your string:\n");
fgets(text, sizeof(text), stdin);
char *word=strtok(text, filter);
printf("\nResult:\n");
while(word!=NULL)
{
char word2[256]={0};
strcpy(word2, word);
word2[0]=toupper(word2[0]);
for(int i = 1; i < strlen(word2); i++)
word2=tolower(word2);
printf("%s ", word2);
word=strtok(NULL, filter);
}

system("pause");
return 0;
}
 
Регистрация
19 Авг 2013
Сообщения
96
Репутация
0
Спасибо
0
Монет
0
А в чём проблема сделать обычный костыль (f = 1)?... Циклом перебрать введённую строку. Если символ i - буква, то следующий вопрос: i - первая буква строки (f == 1)? Если да, то увеличиваем f на 1, а i делаем большой. Если нет, то делаем букву маленькой. Если i - не буква, то f = 1. Всё.
 
Сверху Снизу