Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> веселые строки 
V
    Опции темы
qwerty233
Дата 22.11.2010, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 3.10.2010

Репутация: нет
Всего: нет



Нужно поместить первый символ в конец строки и добавить "ay". Подскажите пожалуйста в чем я ошибся!!!
Код

#include <iostream>
using std::cout;
using std::endl;
using std::cin;

#include <cstring>
using std::strcat;
using std::strtok;
using std::strlen;

void printLatinWord( char* );

int main()
{
    const int stringSize = 50;
    char string[stringSize];
    char *sPtr;

    cout << "Enter a string: ";
    cin.getline( string, stringSize );

    sPtr = strtok( string, " " );
    printLatinWord( sPtr );

    while( sPtr != 0 )
    {
        sPtr = strtok( 0, " " );
        printLatinWord( sPtr );
    }
    return 0;
}

void printLatinWord( char* s )
{
    char string[20] = {0};
    char str[20] = {0};
    int i = 0;

    for( int n = 0; n < 20; n++ )
    {
        string[n] = s[n];
    }

    do
    {
        str[i] = string[i + 1];
        i++;
        
    } while( string[i] != '\0' );

    str[strlen(str)] = string[0];

    strcat( str, "ay" );

    cout << str << endl;

}

PM MAIL   Вверх
Albor
Дата 22.11.2010, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: 2
Всего: 9



Код

str[strlen(str)] = string[0];

Этим затираешь заключительный 0.
PM MAIL ICQ   Вверх
qwerty233
Дата 22.11.2010, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 3.10.2010

Репутация: нет
Всего: нет



Это я уже исправил, добавив это
Код

str[strlen(str) + 1] = '\0';

а итог один и тот же smile 

PM MAIL   Вверх
Леопольд
Дата 22.11.2010, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



qwerty233,  С или С++? Для ввода используется потоки С++, но строки сишные (char *)...

Это сообщение отредактировал(а) Леопольд - 22.11.2010, 16:15


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
qwerty233
Дата 22.11.2010, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 3.10.2010

Репутация: нет
Всего: нет



Пишу на С++, а сторки надо именно Сишные использовать.
PM MAIL   Вверх
Albor
Дата 22.11.2010, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: 2
Всего: 9



Цитата(qwerty233 @  22.11.2010,  16:05 Найти цитируемый пост)
а итог один и тот же  

Не +1, а-1 должно быть
PM MAIL ICQ   Вверх
qwerty233
Дата 22.11.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 3.10.2010

Репутация: нет
Всего: нет



Все равно ошибка, что + что -
PM MAIL   Вверх
Леопольд
Дата 22.11.2010, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



Код
int main()
{
    std::string input;
    std::cin >> input;

    input += *input.begin();
    input += "ay";

    std::cout << input << std::endl;

    return 0;
}


Добавлено @ 16:22
Цитата(qwerty233 @  22.11.2010,  16:16 Найти цитируемый пост)
Пишу на С++, а сторки надо именно Сишные использовать. 
Препод - дурная bашка?


Это сообщение отредактировал(а) Леопольд - 22.11.2010, 16:23


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
qwerty233
Дата 22.11.2010, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 3.10.2010

Репутация: нет
Всего: нет



Да нет препод тут не причем это в Дейтелах такая задача.
PM MAIL   Вверх
Леопольд
Дата 22.11.2010, 16:26 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



Цитата(qwerty233 @  22.11.2010,  16:24 Найти цитируемый пост)
это в Дейтелах
Не bуду теперь советовать их никому...

В чём смысл упражнения? Зачем учить смешивать С и С++?



--------------------
вопросов больше чем ответов
PM MAIL   Вверх
qwerty233
Дата 22.11.2010, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 3.10.2010

Репутация: нет
Всего: нет



А разве в классе string не используются строки в стиле С?
PM MAIL   Вверх
Леопольд
Дата 22.11.2010, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



Цитата(qwerty233 @  22.11.2010,  16:31 Найти цитируемый пост)
А разве в классе string не используются строки в стиле С? 
Скорее всего. Но к string не применимы те же функции что и к char*. В контейнерах хранить char* тоже не удоbно...


Это сообщение отредактировал(а) Леопольд - 22.11.2010, 16:42


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
qwerty233
Дата 22.11.2010, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 3.10.2010

Репутация: нет
Всего: нет



Так подскажет кто-то в чем я не прав?
PM MAIL   Вверх
Леопольд
Дата 22.11.2010, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



Цитата(qwerty233 @  22.11.2010,  16:55 Найти цитируемый пост)
Так подскажет кто-то в чем я не прав? 
Цитата(qwerty233 @  22.11.2010,  15:46 Найти цитируемый пост)
Нужно поместить первый символ в конец строки и добавить "ay".
Судя по описанию, strtok не нужен...
Переведи код, который я теbе дал, в С.


Это сообщение отредактировал(а) Леопольд - 22.11.2010, 16:59


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
qwerty233
Дата 22.11.2010, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 3.10.2010

Репутация: нет
Всего: нет



Моя вина. Не дописал что strtok() нужен.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.