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

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

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

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

27.03.2013, 22:47. Просмотров 500. Ответов 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++ Работа со строками.
C++ Работа со строками
C++ Работа со строками
C++ Работа со строками
Работа со строками C++
Работа с строками C++
Программа вылетает по завершению.Свинячья латынь C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
15551 / 9893 / 1487
Регистрация: 24.12.2010
Сообщений: 18,507
27.03.2013, 23:20     Свинячья латынь( работа с С-строками ) #2
Цитата Сообщение от anubis1768 Посмотреть сообщение
Вроде бы все должно работать, но программа виснет.
Память портишь.
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
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;
}
Yandex
Объявления
27.03.2013, 23:39     Свинячья латынь( работа с С-строками )
Ответ Создать тему
Опции темы

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