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

конкатенация строк char* - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
ninja3
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 3
19.11.2012, 23:09     конкатенация строк char* #1
Здарова господа!
Есть задача. Нужно выбрать из строки каждое слово и первый символ слова переместить в конец этого слова и добавить 2 символа ay. Допустим есть слово jump. j переносим в конец umpj и добавляем ay тоесть umpjay
вот код:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
//svin9cha9 leksema
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
#include <cstdlib>//prototip dl9 rand i srand
using std::rand;
using std::srand;
 
#include <ctime>//prototip dl9 time
using std::time;
 
#include <cstring> //prototip dl9 strcmp i strncmp
using std::strcat;//konkatenasi9 strok
using std::strncat;
using std::strtok;//naxodit leksemu
 
void printLatinWord(const char*);//peredat6 leksemu i vuvesti polychivweec9 slovo
 
int main()
{
    char str[]="jump the computer";//stroka
    char* leksema;//ykazatel6 na leksemy
    
    //rozbivaem na leksemu
    leksema=strtok(str," ");
    
    //prodoljaem razbienie
    while(leksema!=NULL)
    {
        printLatinWord(leksema);
        leksema=strtok(NULL," ");//polychit6 sledyuchyu leksemy
    }
    
//  cout <<"str= "<<str<<endl;
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    return 0;
 
 
}
 
void printLatinWord(const char*s)
{
    char b=s[0];//naxjdits9 pervui simvol slova
    cout <<"b= "<<b<<endl;
    char pr[40]="";
    
    
    
    //strcat(pr,s);//dovavl9em pervui element nazad
    strcat(pr,s+1);
    //strcat(pr,b);
    strcat(pr,"ay");
    
    s=s+1;//ydal9em pervui simvol
    cout <<"s= "<<s;
    cout <<" s+1= "<<s+1;
    cout <<" s[1]= "<<s[1];
    
    cout <<" pr= "<<pr<<endl;
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
 
 
}
функции printLatinWord передаем указатель на лексему.
создаю char b и присваиваю ему первый символ слова b=s[0];
-затем перезаписываю слово без первого символа strcat(pr,s+1);
-дальше добавляю первый символ который сохранен в b в конец строки pr //strcat(pr,b); и тут вылазит ошибка
ошибка: некорректное преобразование из «char» в «const char*» [-fpermissive]
непонятно чо она вылезла?
Как мне первый символ слова перенести в конец слова????
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2012, 23:09     конкатенация строк char*
Посмотрите здесь:

Указатели char* - конкатенация без <string.h> C++
конкатенация char C++
конкатенация строк C++
Конкатенация строк C++
Конкатенация строк C++
C++ Конкатенация строк
C++ Конкатенация строк s1 и s2
Перевод переменной из int в char и конкатенация строк C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 02:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru