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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2014, 22:12   #1
Ans797
Пользователь
 
Регистрация: 01.11.2014
Сообщений: 12
Смущение Си. Заменить на вариант с массивами и указателями

Здравствуйте
Помогите, пожалуйста, видоизменить задачу. По условию надо написать функцию, которая в строке символов делает так, что бы каждое слово начиналось с большой буквы, если оно начиналось с маленькой. Ее нужно выполнить с использованием индексированных массивов и с помощью указателей. У меня получился такой код, но переделать его используя массивы или указатели не могу. Помогите, пожалуйста.
Код:
#include<stdio.h>
#include<conio.h>
void main()
{
    char c;
    int q;
    q='A'-'a';
    c=getchar();
    if(c>='a'&&c<='z')
        putchar(c+q);
    else
        putchar(c);
    while((c=getchar())!=EOF)
    {
        if (c==' '||c=='\n'||c=='\t')
        {
            putchar(c);
            c=getchar();
            if (c>='a'&&c<='z')
                putchar(c+q);
            else
                putchar(c);
        }
        else
            putchar(c);
    }
    _getch();
}
Ans797 вне форума Ответить с цитированием
Старый 04.12.2014, 08:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ты с помошью scanf() строку, просто строку ввести можешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.12.2014, 16:39   #3
Ans797
Пользователь
 
Регистрация: 01.11.2014
Сообщений: 12
По умолчанию

так? но указатели все равно не получаются
Код:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
	int q, i=0;
	char s[20];
	q='A'-'a';
	while((s[i]=scanf(s))!=EOF)
	{
	scanf("%s", s);
	if(s[i]>='a'&&s[i]<='z')
		s[i]=s[i]+q;
	printf("%s ", s);
	}
	_getch();
}
Ans797 вне форума Ответить с цитированием
Старый 07.12.2014, 16:51   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но указатели все равно не получаются
Все получится )
Только вот ввод не ахти, но попытка не пытка.
Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char s[255]={0};
    int i;
    char *c;
    
    //Массивами
    gets(s);
    s[0]=s[0]-'a'+'A';
    for(i=0;s[i];i++) if(s[i]==' ') s[i+1]=s[i+1]-'a'+'A';
    printf("%s\n",s);

    //Указателями
    gets(s);
    c=&s;
    *c=*c-'a'+'A';
    for(++c;*c;c++) if((char)*(c-1)==' ') *c=*c-'a'+'A';
    printf("%s\n",s);

    getchar();
    return 0;
}
Да, только учти что gets() что я тут применил не совсем по феншую хоть и работает, но это уже сам поправишь ввод строки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.12.2014, 17:31   #5
Ans797
Пользователь
 
Регистрация: 01.11.2014
Сообщений: 12
По умолчанию

СПАСИБО БОЛЬШОЕ
Ans797 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вариант по хаскелу nefilim14 Помощь студентам 0 03.05.2014 11:38
Помогите разобрать программу с указателями и массивами Dimka-novitsek Общие вопросы C/C++ 7 26.09.2013 13:18
“Иследование работы с указателями и массивами ” saammy Общие вопросы C/C++ 1 13.12.2010 22:38
Павловская вариант 12 Бибик Помощь студентам 1 12.12.2009 20:32
работы с указателями и массивами... Катюшенька Помощь студентам 21 24.01.2009 12:17