Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
#1

Свинячья латынь( работа с С-строками ) - C++

27.03.2013, 22:47. Просмотров 518. Ответов 2
Метки нет (Все метки)

Задание такое: вводится строка и нудно ее перевести в такую латынь. Алгоритм такой: первую букву поставить в конец слова и добавить к концу слова "ау". Получается из слова "the" - "hetay", "computer" - "omputercay" и тд. Вроде бы все должно работать, но программа виснет. Подскажите, где у меня ошибка.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <cstring>
 
char* latin( char* );
 
int main() {
    char a[200];    
    std::cin.getline( a, 200 );
    
    char* tmp = std::strtok( a, " " );
    std::cout << latin( tmp );
    
    do {
        tmp = std::strtok( NULL, " " );
        std::cout << " " << latin( tmp );
        
    }   while( tmp != NULL );
 
    return 0;
}
 
char* latin( char* source ) {
 
    source[std::strlen( source )] = source[0];
    source = &source[1];    
    std::strcat( source, "ay" );
    
    return source;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2013, 22:47     Свинячья латынь( работа с С-строками )
Посмотрите здесь:

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

Сортировка текста в строке по алфавиту (латынь) - C++
Необходимо написать программу на языке C++, а именно: Реализовать программу, демонстрирующую решение поставленной задачи: -ввод...

Работа со строками - C++
Подскажите пожалуйсто!!! Как удалить часть строки не создавая при этом новой строки?

Работа со строками - C++
Помогите пожалуйста нужна функция копирования из одной строки в другую начиная с к символов.Вот прототип void copy(char *str1,int k,char...

Работа со строками - C++
ммм, в общем задание такое: Если честно чувствую себя тупым, читая это задание... Препод сказал, что строка вводится без пробелов...

Работа со строками - C++
Даны два слова. Для каждой буквы первого слова определить, входит ли она во второе слово. Повторяющиеся буквы первого слова не...

Работа со строками в СИ++ - C++
Парни помагите напишите прогу если не втягость заранее благодарю))) Вот условие: Дана строка. Преобразовать ее, удалив каждый символ *...

Работа со строками - C++
Дан текст.Выделить все слова,которые не содержат одинаковых символов.Различие строчных и прописных букв во внимание не принимать. ...

Работа со строками - C++
У меня есть есть структурные переменные и указатели на них, естественно. предположим struct name() { char b=&quot;Hello!&quot;; ...

Работа с строками - C++
Здравствуйте! Есть строка (предложение) надо убрать все пробелы, в т. ч. в начали конце и получить количество слов в этом предложении. ...

Работа со строками - C++
Есть задание: Код, который давали на лекции int main() { char s = { 0 }; gets_s(s); int len = strlen(s);

Работа со строками - C++
Всем доброго времени суток. Я собрался поступать (в свои-то 22, года, балбес), и сдаю ЕГЭ по информатике. Все решаю более-менее в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
15833 / 10160 / 1522
Регистрация: 24.12.2010
Сообщений: 19,148
27.03.2013, 23:20     Свинячья латынь( работа с С-строками ) #2
Цитата Сообщение от anubis1768 Посмотреть сообщение
Вроде бы все должно работать, но программа виснет.
Память портишь.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
27.03.2013, 23:39     Свинячья латынь( работа с С-строками ) #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstring>
 
char *transform(char *source, char *destination) {
  size_t sourceLength = strlen(source);
  if (sourceLength > 1) {
    strcpy(destination, source + 1);
  }
  destination[sourceLength - 1] = *source;
  destination[sourceLength] = '\0';
  strcat(destination, "ay");
  return destination;
}
 
int main(int argc, char **argv) {
  char string[] = "computer";
  char buffer[sizeof(string) + 2];
  std::cout << transform(string, buffer) << std::endl;
  return 0;
}
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru