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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2009, 19:30   #1
Dem6
Пользователь
 
Регистрация: 07.04.2009
Сообщений: 24
По умолчанию

Что надо сделать:
Написать программу которая считает текст и записывает его в новый файл,
начинающи каждое слово с большой буквы.
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

main()
{
	FILE *in,*out;
	int i=0,j,k=0,n=0;
	char s[60];

	in=fopen("111.txt","r");
	if(!in)
	{
		puts("error");
		return 0;
	}
while(fgets(s,60,in)!=NULL)
{
                           
 printf("%s\n",s);
}
	fseek(in,0,0);
	out=fopen("111.rez","w");
      for (;((s[i]=fgetc(in))!=EOF);i++);
	{	
		if(s[i]==' ')
		{			
            for(j=n;j<=i;j++)
			putc(s[j],out);
			n=i+1;
			k++;
         }
     }
    
     fcloseall();
}
Что то никак не получается составить условие

Код:
int kil=i; 
for (i=0;i<=kil;i++){
     if (s[i]==' ') 
{
toupper(s[i+1]);
}
Делаю так, что-то не выходит((

Последний раз редактировалось Stilet; 09.12.2009 в 08:35.
Dem6 вне форума Ответить с цитированием
Старый 09.12.2009, 03:53   #2
Olejik
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 218
По умолчанию

int kil=i;
char c;
for (i=0;i<=kil;i++){
if (s[i]==' ')
{
i++;
c = toupper(s[i]);
s[i] = c;
}
как то так... функции с регистром возвращают измененные символы, сначало надо записать символ от этой функции в отдельное место а потом уже совать в массив, но можешь попробывать и сразу в массив, кста, на русские символы она кажись не работает и еще есть функция wtoupper, кажись так пишется, попали ее если будут проблемы.

Последний раз редактировалось Olejik; 09.12.2009 в 04:05.
Olejik вне форума Ответить с цитированием
Старый 09.12.2009, 19:15   #3
Dem6
Пользователь
 
Регистрация: 07.04.2009
Сообщений: 24
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>

main()
{
	FILE *in,*out;
	int i=0,j,k=0,n=0;
	char s[60];
    char c;
    int kil;
	in=fopen("111.txt","r");
   fseek(in,0,0);
   out=fopen("111.rez","w");
   for (;((s[i]=fgetc(in))!=EOF);i++)
   {
   kil=i;
   for (i=0;i<=kil;i++)
       {
        if (s[i]==' ')
        {
         i++;
         c = toupper(s[i]);
         s[i] = c;
         putc(c,out);
        }
       }
   }
   printf("%s\n",s);          			
   fcloseall();
}
Вот что я ввожу I study to write on c++
Вот что получаю 탪탪탪탪Ð탪Ð탪Ð탪︀탪︀탪︀탪︀Ð嗾탪︀ Ð嗾
Вот что должен получить I Study To Write On C++
Условия вроде правильно
Dem6 вне форума Ответить с цитированием
Старый 09.12.2009, 23:17   #4
Olejik
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 218
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
void main(void)
{
	FILE *in,*out;
	int i = 0, k = 0, n = 0;
	char s[60];
	char c;
	int kil;
	in = fopen("111.txt","r");
	fseek(in,0,0);
	out = fopen("111.rez","w");
	fgets(s,60,in);
	for(i = 0 ; i < strlen(s) ; i++)
	{
		if(s[i] == ' ')
		{
			i++;
			c = toupper(s[i]);
			s[i] = c;
		}
	}
	puts(s);
}
а дальше сам намути что тебе надо
Olejik вне форума Ответить с цитированием
Старый 10.12.2009, 00:05   #5
Dem6
Пользователь
 
Регистрация: 07.04.2009
Сообщений: 24
По умолчанию

спасибо, Вы мне очень помогли
Dem6 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регистры Волк Microsoft Office Excel 9 08.04.2009 16:07
Регистры в TASM Piksel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 29.12.2008 09:28
Регистры Манжосов Денис :) Помощь студентам 8 28.07.2008 12:48
Регистры RealSHELS Общие вопросы Delphi 3 28.03.2008 18:56
Регистры Elm0 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 13 10.02.2008 19:49