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

Замена строчной буквы на заглавную - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.60
flash_nnov
Сообщений: n/a
09.11.2008, 13:49     Замена строчной буквы на заглавную #1
Вобщем требуется написать программу (Visual C++ 2008 Express Edition), которая открывает текстовый файл-список, содержащий имена файлов по одному на строке.
Программа анализирует содержимое файла и устраняет простейшую ошибку – строчная буква в начале предложения.

Незнаю как организовать замену строчной буквы на заглавную, подскажите пожалуйста ка это сделать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2008, 13:49     Замена строчной буквы на заглавную
Посмотрите здесь:

C++ Замена буквы на пробелы
Замена буквы в слове! C++
Программа удаляет все слова начинающиеся со строчной буквы (пояснить код) C++
C++ Если слово начинается с латинской строчной буквы, заменить её на прописную
C++ Замена первой буквы на заглавную
C++ Замена одной буквы на две
C++ Подсчитать число появлений в строке каждой строчной русской буквы - прокомментировать код
Замена первой буквы во всех словах на заглавную C++
C++ Странный вывод строчной переменной
Каждую заглавную букву заменить строчной буквой, пару букв "ки" заменить на "ю" C++
замена буквы в текстовом файле. с++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Abu
 Аватар для Abu
1152 / 277 / 14
Регистрация: 28.09.2008
Сообщений: 553
09.11.2008, 15:06     Замена строчной буквы на заглавную #2
Незнаю как организовать замену строчной буквы на заглавную, подскажите пожалуйста ка это сделать.
Может так?

Код
string s="hello world";
s[0] = toupper(s[0]);
KRIK
0 / 0 / 0
Регистрация: 08.11.2008
Сообщений: 7
09.11.2008, 18:16     Замена строчной буквы на заглавную #3
не забудь #include <ctype.h>
Abu
 Аватар для Abu
1152 / 277 / 14
Регистрация: 28.09.2008
Сообщений: 553
09.11.2008, 21:58     Замена строчной буквы на заглавную #4
не забудь #include <ctype.h>
А у меня и без него работает!
Почему так? От компилятора зависит?
KRIK
0 / 0 / 0
Регистрация: 08.11.2008
Сообщений: 7
09.11.2008, 22:23     Замена строчной буквы на заглавную #5
vs 2005 просит ctype.h у меня, про остальные варианты не знаю
flash_nnov
Сообщений: n/a
12.11.2008, 09:25     Замена строчной буквы на заглавную #6
Спасибо за все советы. Но чёт не получается, после запуска открывается консоль, а в ней куча разных букв и символов, и динамик в компе пишит). Может подскажите, чё в коде не так. Спасибо.



Код
#include <stdio.h>
# include <iostream>
# include <fstream>
using namespace std;

int main()
{
    int k=0;  //вводим переменную целого типа и присваиваем ей значение 0
    ifstream list("list.txt"); //открываем файл list.txt
    char buf[256];
    	while (!list.eof()) //пока файл list.txt не прочитан до конца
   //(файл читаем построчно) выполняем действия
		{  list.getline(buf,sizeof(buf));
      		if(buf[strlen(buf)-1]=='\n') //если в конце стоки последний символ \n…
      		buf[strlen(buf)-1]='\0'; //меняем его на \0
	  	 ifstream file(buf); //открываем файлы с именами указанными
     //в файле list.txt (каждая строка имя файла)
char letter[256];
        			while (!file.eof())//пока файл не прочитан до конца
   					      //(файл читаем посимвольно) выполняем действия
{   
 				file.getline(letter,sizeof(letter));
int  i = 0;



//Ищем начало предложения - буквенный символ; если его не находим - возвращаемся к hehey пока не найдем(пока не найдем символы не выводятся)
while (letter[i])
{
hehey:;
if (((letter[i] >= 'A') &&  (letter[i] <= 'Z')) || ((letter[i] >= 'a') &&  (letter[i] <= 'z')))
	{
	cout.put(toupper(letter[i]));//к какому бы регистру ни принадлежала первая буква предложения, выводиться будет в верхнем регистре
	i++;
	}
else 
	{
	i++;
	goto hehey;
	}

  				//пока не конец предложения выводим все символы как есть
  				while ((letter[i] != '.') || (letter[i] != '?') || (letter[i] != '!'))
				{
					cout.put(letter[i]);
					i++;
				}
				//выводим символы и пробелы в конце предложения, до начала нового
				//также это на случай если к примеру несколько восклицательных знаков
				while ((letter[i] == ' ') || (letter[i] == '.') || (letter[i] == '?') || (letter[i] == '!'))
				{
					cout.put(letter[i]);
					i++;
				}
				//завершение цикла - сигнал, что встретился иной символ(буквенный) и нам нужно вернутся к hehey
				//P.S. - если символ иной, например : ; , что для начала предложения ошибочно, то эти 
				//символы выводится не будут - не позволят условия после hehey


		}			
					}
	   		file.close(); //закрываем файл
	   
		}	
       	list.close(); //закрываем файл list.txt
	
return 0;
}
Yandex
Объявления
12.11.2008, 09:25     Замена строчной буквы на заглавную
Ответ Создать тему
Опции темы

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