Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2013, 12:42   #1
marina12
Пользователь
 
Регистрация: 13.02.2013
Сообщений: 28
По умолчанию исправьте ошибку (изменить регистр букв в файле)

Здравствуйте!
Задача - заменить все строчные буквы следующие после точки или точка+пробел на заглавные. Попыталась сделать с помощью toupper, но заменяет только буквы,стоящие после точки, а после точка+пробел не заменяет. В программировании недолго,не судите строго,если ошибки глупые.

Ниже весь код программы (+замена двойных пробелов на одиночные)
Замена регистра начинается со строчки "r=0".
Код:
#include "stdafx.h"
#include <iostream>
#include <ctype.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <ctype.h>
void main()
 {
   char s[80];
   int i,k,l,n,r;
   FILE *fin, *fout;
   fin=fopen("Input.txt", "r");
   if (fin==NULL)
      {
      fprintf(stderr,"Error opening file for read\n");
      exit(1);
      }
   fout=fopen("Output.txt", "w");
   if (fout==NULL)
      {
      fprintf(stderr,"Error opening file for write\n");
      exit(1);
      }
 
   while (NULL!=fgets(s,80,fin))
   {
     i=0;
     while (s[i]!='\0')
	 {
       if (s[i]==' ')
	   {
		   if (s[i+1]==' ' && (s[i-1] != 39 || s[i+2] != 39) && (s[i-1] != 34 || s[i+2] != 34))
		   {
			   k=i;
			   l=i;
			   n=1;
			   while ((s[l]!='\0')&&(s[l]==' '))
			   { 
				   l++;
			   }
			   while (s[l]!='\0')
			   { 
				   s[k+n]=s[l];
				   n++;
				   l++;
				   s[k+n]='\0';
			   }
		   }
		   else i++;
	   }
	   i++;
	 }
	 r=0;
	 while (s[r]!='\0')
	 {
		 if ((s[r-1]=='.')||((s[r-2]=='.')&&(s[r-1]=='.')))
		 {
			 if ((s[r]>=97)&&(s[r]<=122))
			 {
				 s[r]=toupper(s[r]);
				 r++;
			 }
			 else r++;
		 }
		 r++;
	 }
	 fprintf(fout,"%s",s);
   }
   fclose(fin);
   fclose(fout);
}
marina12 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
регистр букв в Edit a_n_n_a Общие вопросы Delphi 22 13.08.2012 11:31
операция LIKE в SQL ADO и регистр букв RamireZ БД в Delphi 8 01.08.2011 15:33
Заменить в группе ячеек с текстом регистр букв Wespe Microsoft Office Excel 2 21.06.2010 09:01
Как изменить регистр Windows? Влад_М Общие вопросы Delphi 12 12.05.2009 21:41
Регистр для русских букв Kulibim Общие вопросы Delphi 2 28.10.2007 17:36