Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/40: Рейтинг темы: голосов - 40, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 104

Сделать заглавными буквы после точки

08.02.2016, 13:33. Показов 7807. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать так что бы после каждой точки буква была заглавная
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.02.2016, 13:33
Ответы с готовыми решениями:

После пробелов, знаков припинания все буквы сделать заглавными
Всем привет, прошу прощения если была уже такая тема. Задача в следующем: дан текст(Мама мыла раму). Задача, чтобы после пробелов, знаков...

Дана строка символов до точки. Выделить в ней все русские буквы, сделав их заглавными
Дана строка символов до точки. Выделить в ней все русские буквы, сделав их заглавными

Сделать строчные буквы в строке заглавными
Еще раз здрасте. Сразу второй вопрос..задаю в новой теме, а то вдруг 2 вопроса в одной теме не пойдут. Хочу сделать строчные буквы в...

12
13 / 13 / 7
Регистрация: 24.04.2015
Сообщений: 51
08.02.2016, 16:57

Не по теме:


Нажать Shift?


Где сделать? В файле, в водимом тексте?
0
548 / 479 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
08.02.2016, 16:57
После точки сразу будет буква или может быть пробел?
0
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 104
08.02.2016, 17:11  [ТС]
смотрите мы вводим допустим

Привет Пока.Ага.
0
13 / 13 / 7
Регистрация: 24.04.2015
Сообщений: 51
08.02.2016, 17:36
Сразу прошу прощения за то что так не красиво, зато понятно) Работает если не было пробелов после точки.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        bool ustap = false;
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text.Length >1)
            {
                if ((textBox1.Text[textBox1.Text.Length -2] == '.')&&(ustap))
                {
                    ustap = false;
                    string s = textBox1.Text;
                    textBox1.Text=textBox1.Text.Remove(textBox1.Text.Length - 1);
                    textBox1.Text =textBox1.Text + s[s.Length-1].ToString().ToUpper();
                    textBox1.SelectionStart = textBox1.Text.Length;
                }
            }
        }
 
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            ustap = true;
        }
Работает, но вариант поганый)

Добавлено через 5 минут
C#
1
2
3
4
5
6
7
8
9
10
11
        bool upper = false;
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((upper) && (e.KeyChar != 32))
            {
                e.KeyChar = char.Parse(e.KeyChar.ToString().ToUpper());
                upper = false;
            }
            if (e.KeyChar == 46)
                upper = true;            
        }
Вот, человеческий вариант, на пробелы внимания не обращает
0
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 104
08.02.2016, 18:15  [ТС]
Да спасибо теперь после " . " пишет заглавными, но после пробела не пишется слово заглавными буквами
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
08.02.2016, 18:20
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using System.Linq;
 
internal sealed class Program {
  static void Main() {
    String s = "консольный пример решения задачи. до кучи.";
    s.Split('.').ToList().ForEach(i => {
      if (!String.IsNullOrEmpty(i)) {
        i = i.Trim();
        Console.WriteLine(i.Remove(1).ToUpper() + i.Substring(1) + ".");
      }
    });
  }
}
0
0 / 0 / 1
Регистрация: 26.10.2013
Сообщений: 104
08.02.2016, 18:44  [ТС]
Спасибо конечно за консольный вариант но мне бы в той которой мне нужна

Добавлено через 10 минут
мне нужно что бы допустим до слова был пробел и после этого пробела что бы слово начиналось с заглавной буквы и после точки что бы начиналось с заглавной буквы
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
08.02.2016, 19:51
Karsar123, можно на регулярках попробовать.

Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "ходит дурачок по лесу.ищет дурачок глупей себя. идёт смерть по улице, несёт блины на блюдце. кому вынется — тому сбудется.";
 
            text = Regex.Replace(text, @"(^|\.[\s]*)\w+", RepText);
 
 
            Console.WriteLine(text);
            Console.ReadKey();
 
        }
 
        static string RepText(Match _match)
        {            
            string matchText = _match.ToString();
 
            char firstCharOfWord = matchText.First(char.IsLetterOrDigit);
 
            int firstCharIndex = matchText.IndexOf(matchText.First(char.IsLetterOrDigit));
 
            return matchText.Substring(0, firstCharIndex + 1).ToUpper() + matchText.Substring(firstCharIndex + 1);
        }
    }
}


Добавлено через 20 минут
На всякий случай, классический вариант.

Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = "ходит дурачок по лесу.ищет дурачок глупей себя. идёт смерть по улице, несёт блины на блюдце. кому вынется — тому сбудется.";
 
            text = RepText(text);
 
            Console.WriteLine(text);
            Console.ReadKey();
 
        }
 
        static string RepText(string text)
        {
            char[] input = text.ToCharArray();
 
            bool waitLowerChar = false;
 
            if (char.IsLetter(input[0])) input[0] = char.ToUpper(input[0]);
            
            for (int i = 1; i < input.Length; i++) {
                if (input[i] == '.') { waitLowerChar = true; continue; }
                if (waitLowerChar && char.IsLower(input[i])) { input[i] = char.ToUpper(input[i]); waitLowerChar = false; }            
            }
 
            return new string(input);
        }
    }
}
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
08.02.2016, 19:55
Если каждое слово через пробел делать заглавным, то:
C#
1
CultureInfo.CurrentCulture.TextInfo.ToTitleCase("некая строка");
Если же только первое слово в предложении, то можно использовать примерно следующий подход:
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
50
51
using System;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
 
namespace Capitalize {
  internal sealed class frmMain : Form {
    public frmMain() {
      InitializeComponent();
    }
    
    private TextBox txtEdit;
    private StringBuilder sb = new StringBuilder();
    
    private void InitializeComponent() {
      this.txtEdit = new TextBox() {
        Location = new Point(13, 13),
        Width = 270
      };
      this.txtEdit.TextChanged += (s, e) => {
        if ((Char)txtEdit.Text.Last() == '.') {
          sb.Length = 0;
          sb.Capacity = 0;
          
          txtEdit.Text.Split('.').ToList().ForEach(i => {
            if (!String.IsNullOrEmpty(i)) {
              i = i.Trim();
              sb.Append(i.Remove(1).ToUpper() + i.Substring(1) + ". ");
            }
          });
          txtEdit.Text = sb.ToString();
          txtEdit.SelectionStart = txtEdit.Text.Length;
          txtEdit.SelectionLength = 0;
        }
      };
      this.ClientSize = new Size(300, 70);
      this.Controls.Add(this.txtEdit);
      this.StartPosition = FormStartPosition.CenterScreen;
      this.Text = "Capitalize";
    }
  }
  
  internal sealed class Program {
    [STAThread]
    static void Main() {
      Application.EnableVisualStyles();
      Application.Run(new frmMain());
    }
  }
}
То есть, сразу после того, как будет поставлена точка, первое слово в предложении "пишется" с заглавной буквы.
0
548 / 479 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
09.02.2016, 01:18
За точкой после пробела будут заглавные Бувы

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Forms Code
{
       private void button1_Click(object sender, EventArgs e)
       {
          String s, s1, s2;
           int n;
            s = "asedrf. yuij. kmedrf. ghjfve";
             n = s.Length;
              for (int i = 0; i < n; i++)
              {
                s1 = s.Substring(i, 1);
                if (s1 == ".")
                {
                  s2 = (s.Substring(i + 2, 1).ToUpper());
                   s = s.Replace(s.Substring(i + 2, 1), s2);                                     
                }
 
            }
              textBox1.Text = s;
       }
}
0
13 / 13 / 7
Регистрация: 24.04.2015
Сообщений: 51
09.02.2016, 10:49
Karsar123, я видимо не совсем понятно написал, оставь только
C#
1
2
3
4
5
6
7
8
9
10
11
        bool upper = false;
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((upper) && (e.KeyChar != 32))
            {
                e.KeyChar = char.Parse(e.KeyChar.ToString().ToUpper());
                upper = false;
            }
            if (e.KeyChar == 46)
                upper = true;            
        }
остальное не нужно, тогда после каждой точки первый не пробельный символ будет заглавным, если нужно чтоб и после пробела (без точки) слово было с заглавной буквы,
C#
1
if (e.KeyChar == 46)
замени на
C#
1
if ((e.KeyChar == 46) || (e.KeyChar == 32))
0
0 / 0 / 0
Регистрация: 02.02.2017
Сообщений: 10
31.05.2017, 18:26
Цитата Сообщение от Yurui Посмотреть сообщение
остальное не нужно, тогда после каждой точки первый не пробельный символ будет заглавным, если нужно чтоб и после пробела (без точки) слово было с заглавной буквы,
а не подскажешь как сделать чтобы после точки пробел не ставился вообще?
в другом месте сделал чтобы не ставились русские буквы таким образом
C#
1
2
char c = e.KeyChar;
e.Handled = c >= 'а' && c <= 'я' || c >= 'А' && c <= 'Я' || c == 'ё' || c == 'Ё' ;
а как запретить пробел после точки не додумаюсь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2017, 18:26
Помогаю со студенческими работами здесь

Первые буквы в словах сделать заглавными
File1.txt иван иванов File2.txt иван иванов //--------------------------------------------------------------------------- ...

Все согласные буквы в строке сделать заглавными
Задача нужна с комментами Лимит времени 2000/4000/4000/4000 мс. Лимит памяти 65000/65000/65000/65000 Кб. Дана строка S, состоящая...

Как сделать все буквы в TextBox — заглавными
Добрый день! Собственно известно ли кому нибудь, как выводить слова в текст боксах заглавными буквами, что за свойство необходимо...

Получить из текста гласные буквы и сделать их заглавными
задание; введите в консоле текст и чтобы программа на следующей строчке вывела гласные буквы и перевела их в заглавные

Сделать первые буквы слов в строке заглавными
Нужно сделать первые буквы слов в строке заглавными. Вот сделал немного, а дальше не пойму как доделать. Получилось сделать чтобы он...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru