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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2015, 00:14   #1
Dira
 
Регистрация: 24.02.2015
Сообщений: 3
По умолчанию В строке после каждого слова дописать ее длину.

Помогите решить, пожалуйста. Я вот немного написала, но это, скорее всего не правильно. Программа не работает(
Код:
#include <cstdlib>
#include <conio.h>
#include <stdio.h>
#include <string.h>
using namespace std;
int main(int argc, char** argv) 
{
    int i,j=0,c;
    char s[250],s1[100];    
printf("vvedite stroku \n");
gets(s);
c=strlen(s)-1;
for (i=0;i<strlen(s);i++)
{if (s[i]!=' ')  {s1[j]=s[i]; j++;}
else if (s[i]==' ') { s1[j]=c; s1[j+1]=s[i]; j++;}}
puts (s1);
_getch();
return 0;
}

Последний раз редактировалось Stilet; 24.02.2015 в 07:37.
Dira вне форума Ответить с цитированием
Старый 24.02.2015, 00:52   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
дописать ее длину
Может "его"?

Провильно ли я понял, что если на вход программе скормить эту строку:
Код:
Hello, World!
То на выходе она покажет эту, как пример:
Код:
Hello,(6) World!(6)
8Observer8 вне форума Ответить с цитированием
Старый 24.02.2015, 01:06   #3
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

Какие ограничения? На выходе должна быть одна цельная строка или необязательно ?
Praud вне форума Ответить с цитированием
Старый 24.02.2015, 07:40   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
j=0;
for (i=0;i<strlen(s);i++,j++)
 if (s[i]==' ')  {printf("(%d) ",j);j=0;} 
  else putc(s[i]);
getch();
Без учета пунктуации. Годится?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.02.2015, 14:57   #5
Dira
 
Регистрация: 24.02.2015
Сообщений: 3
По умолчанию

В конце каждого слова надо написать длину строки. Тоесть должно быть что-то типа такого:
Hello,13 World!13
Dira вне форума Ответить с цитированием
Старый 24.02.2015, 14:58   #6
Dira
 
Регистрация: 24.02.2015
Сообщений: 3
По умолчанию

На выходе должна быть цельная строка
Dira вне форума Ответить с цитированием
Старый 24.02.2015, 15:08   #7
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Я не сишник, а сиплюсплюшник, поэтому так:

Код:
#include <iostream>
#include <string>
#include <sstream>

int main ()
{
    while( true )
    {
        // Get a string
        std::cout << "Enter a string (q=quit): ";
        std::string str;
        if ( !std::getline( std::cin, str ) || str == "q" )
            break;
        std::cout << std::endl;

        // Get and show words
        std::stringstream ss( str );
        std::string word;
        while ( ss >> word )
        {
            std::cout << word << str.size() << " ";
        }
        std::cout << "\n\n";
    }
    std::cout << std::endl;

    return 0;
}
8Observer8 вне форума Ответить с цитированием
Старый 24.02.2015, 15:54   #8
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Сообщение от Dira Посмотреть сообщение
На выходе должна быть цельная строка
Лучше функцию написать, которая бы вернула цельную строку. На входе функции строка, а на выходе - обработанная строка

Код:
#include <iostream>
#include <string>
#include <sstream>

std::string setNumbers( const std::string &str );

int main ()
{
    while( true )
    {
        // Get a string
        std::cout << "Enter a string (q=quit): ";
        std::string str;
        if ( !std::getline( std::cin, str ) || str == "q" )
            break;
        std::cout << std::endl;

        // Get a result
        std::string result = setNumbers( str );

        // Show the result
        std::cout << "Result: " << result << "\n\n";
    }
    std::cout << std::endl;

    return 0;
}

std::string setNumbers( const std::string &str )
{
    std::string result;
    std::stringstream ss( str );
    std::string word;
    while ( ss >> word )
    {
        result += word + std::to_string( str.size() ) + " ";
    }
    return result;
}

Последний раз редактировалось 8Observer8; 24.02.2015 в 15:56.
8Observer8 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить максимальную длину слова в строке в СИ tomas88 C/C++ Базы данных 2 19.12.2014 02:10
Макрос вставки после каждого слова. Demetros Microsoft Office Word 2 15.12.2014 23:04
Во введенной строке поменять первые буквы каждого слова на прописные Эйфория=* Общие вопросы Delphi 25 10.06.2013 17:18
Во введенной строке поменять первые буквы каждого слова на прописные Эйфория=* Помощь студентам 3 06.06.2013 19:32
Записать текст лесенкой(по одному слову в строке),вставляя пустую строку после каждого четверостишья klindk Паскаль, Turbo Pascal, PascalABC.NET 2 27.11.2008 14:34