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

Поменять первое и последние слово. - C++

Восстановить пароль Регистрация
 
BOR1K
 Аватар для BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
12.02.2010, 15:38     Поменять первое и последние слово. #1
Дано предложение поменять первое и последние слово.

Массив char.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mooncrafter
 Аватар для mooncrafter
4 / 4 / 2
Регистрация: 16.11.2009
Сообщений: 11
12.02.2010, 16:37     Поменять первое и последние слово. #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
main(int argc,char *argv){
 char a[100];
 puts("Write str:");
 gets(a);
 char a1=strchr(a,' ');
 char a2=strrchr(a,' ');
 char *t=a;
 for(int i=0;i<strlen(a1;i++)t++;
 t[strlen[t]-strlen[a2]-1]=0;
 char aq[100];
 strcpy(aq,"");
 strcat(aq,a1);
 strcat(aq," ");
 strcat(aq,t);
 strcat(aq," ");
 strcat(aq,a2);
 puts("Resuilt is:");
 puts(aq);
 return 0;
}
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
12.02.2010, 16:56     Поменять первое и последние слово. #3
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
#include <iostream>
#include <vector>
using namespace std;
 
int main(void)
{
  setlocale(LC_ALL,"Russian");
  char szText[]="Дано предложение поменять первое и последние слово";
  cout << szText << endl;
  vector<string> vec;
  char* s = strtok(szText," ");
  if(s)
    vec.push_back(s);
  while(s = strtok(NULL," "))
    vec.push_back(s);
  swap(vec[0], vec[vec.size()-1]);
  char* ptr = szText;  
  memset(ptr,0,strlen(szText));
  for(vector<string>::iterator iter=vec.begin();iter!=vec.end();iter++)
  {
    strcat(ptr,(*iter).c_str());
    if((iter+1)!=vec.end())
      strcat(ptr," ");
  }
  cout << szText << endl;
  return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
13.02.2010, 03:57     Поменять первое и последние слово. #4
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 <sstream>
#include <vector>
#include <iterator>
#include <string>
 
/* Дано предложение поменять первое и последние слово. */
 
int main(){
    std::string str("Morgen morgen nur niht heute zagen alle faule Leute");
    std::istringstream ist(str);
    std::vector<std::string> vec;
    std::string tmp;
    while ( ist >> tmp )
        vec.push_back(tmp);
    if ( vec.empty() ){
        std::cerr << "Shit happens!" << std::endl;
        return 1;
    }
    tmp = vec[0];
    vec[0] = vec[vec.size() - 1];
    vec[vec.size() - 1] = tmp;
 
    std::cout << str << std::endl;
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<std::string>(std::cout, " "));
    std::cout << std::endl;
    
    return 0;
}
Добавлено через 5 минут
BornLeader, а Вы это сами компилировали?
Yandex
Объявления
13.02.2010, 03:57     Поменять первое и последние слово.
Ответ Создать тему
Опции темы

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