Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/44: Рейтинг темы: голосов - 44, средняя оценка - 4.86
flash_nnov
0 / 0 / 0
Регистрация: 06.11.2008
Сообщений: 2
1

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

09.11.2008, 13:49. Просмотров 9051. Ответов 5
Метки нет (Все метки)

Вобщем требуется написать программу (Visual C++ 2008 Express Edition), которая открывает текстовый файл-список, содержащий имена файлов по одному на строке.
Программа анализирует содержимое файла и устраняет простейшую ошибку – строчная буква в начале предложения.

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

Как преобразовать из строчной в заглавную буквы кириллицы?
Не работает функция toupper с кириллицей. Кто может накинуть каких-нибудь способов решения этой...

Замена первой буквы на заглавную
здравствуйте, помочите с созданием функции: надо поменять первую букву каждого слова на заглавную...

Замена первой буквы во всех словах на заглавную
Доброго времени суток! Помогите написать программу которая во всех словах заменит первую букву на...

Замена первой буквы всех слов на заглавную
Здравствуйте. Имеется следующая задача: Разработать программу, которая вводит строку и заменяет...

Каждую заглавную букву заменить строчной буквой, пару букв "ки" заменить на "ю"
не могу понять как всё это сделать void shifr () { FILE *f1; system("cls");...

5
Abu
1154 / 279 / 22
Регистрация: 28.09.2008
Сообщений: 553
09.11.2008, 15:06 2
Незнаю как организовать замену строчной буквы на заглавную, подскажите пожалуйста ка это сделать.
Может так?

Код
string s="hello world";
s[0] = toupper(s[0]);
1
KRIK
0 / 0 / 0
Регистрация: 08.11.2008
Сообщений: 10
09.11.2008, 18:16 3
не забудь #include <ctype.h>
0
Abu
1154 / 279 / 22
Регистрация: 28.09.2008
Сообщений: 553
09.11.2008, 21:58 4
не забудь #include <ctype.h>
А у меня и без него работает!
Почему так? От компилятора зависит?
0
KRIK
0 / 0 / 0
Регистрация: 08.11.2008
Сообщений: 10
09.11.2008, 22:23 5
vs 2005 просит ctype.h у меня, про остальные варианты не знаю
0
flash_nnov
0 / 0 / 0
Регистрация: 06.11.2008
Сообщений: 2
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;
}
0
12.11.2008, 09:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2008, 09:25

Определить код введенной строчной латинской буквы
Ввести две строчные латинские буквы и определить их порядковые номера, а также вывести на экран их...

Подсчитать число появлений каждой строчной латинской буквы
В текстовом файле подсчитать число появлений каждой строчной латинской буквы и создать новый...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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