Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2010, 18:49   #1
Алексей...
Новичок
Джуниор
 
Регистрация: 09.02.2009
Сообщений: 2
По умолчанию Строки

Задачка в следующим необходимо написать код который при вводе строк(предложения) меняет их местами.пример: форум программистов форевер. вывод: муроф вотсиммаргорп ревероф. Написал код переворота предложения задом наперёд,теперь нужно сделать проверку на пробелы.
Вот код:

Код:
#include <conio.h>
#include <iostream>
#include <string.h>
using namespace std;
const int a=50;

int _tmain(int argc, _TCHAR* argv[])
{
char s[a];
char s1[a];
int c=0;

cout<<"Vvedite stroku: ";
cin.getline(s,50);

while (s[c]!=' ')
{
c++; 


}

strcpy(s1,s);
int i,j;
char temp;
for(int i=0,j=strlen(s1)-1;i<j;i++,j--)
{
temp=s1[i];
s1[i]=s1[j];
s1[j]=temp;

}
cout<<s1;


getch();

return 0;
}
Наведите на путь?а то что то голова не варит!!!

Последний раз редактировалось Stilet; 19.07.2010 в 14:29.
Алексей... вне форума Ответить с цитированием
Старый 16.07.2010, 21:06   #2
D@rkD@iver
Форумчанин
 
Регистрация: 28.07.2009
Сообщений: 189
По умолчанию

я бы циклом пробегалпо строке с флагом записи и делить строку на слова
пишу программы для студентов и школьников на Pascal, Delphi, C++, WINAPI, assembler
обучаю программированию на паскале(дистанционно);mail: hruslow@gmail.com
D@rkD@iver вне форума Ответить с цитированием
Старый 19.07.2010, 13:49   #3
Card1nal
Пользователь
 
Регистрация: 31.10.2009
Сообщений: 44
По умолчанию

Вот на чистом Си, перепишешь под плюсы и будет как надо))
Код:
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#define BUFF_SIZE 1024

void die(char *str)
{
  write (2, str, strlen(str));
  exit (EXIT_FAILURE);
}

void *xmalloc(int size)
{
  void *buff;
  buff = malloc(size);
  if (buff == NULL)
    die ("Malloc failed");
  return (buff);
}
int     is_in_str(char c, char *delim)
{
  int   i;

  i = 0;
  while (delim[i])
    {
      if (c == delim[i])
        return (1);
      i++;
    }
  return (0);
}

int     count_word(char *str, char *delim)
{
  int   i;
  int   word;

  i = 0;
  word = 0;
  while (str[i])
    {
      if (is_in_str(str[i], delim) == 1)
        i++;
      else
        {
          word++;
          while (str[i] && is_in_str(str[i], delim) == 0)
            i++;        }
    }
  return (word);
}

int     len_word(char *str, char *delim)
{
  int   i;

  i = 0;
  while (is_in_str(str[i], delim) == 0 && str[i])
    i++;
  return (i);
}

char    **my_str_to_wordtab(char *str, char *delim)
{
  unsigned int  i;
  int   j;
  int   word;
  char  **tab;

  i = 0;
  j = 0;
  word = count_word(str, delim);
  tab = xmalloc(sizeof(*tab) * (word + 1));
  tab[word] = NULL;
  while (i < strlen(str))
    {
      if (is_in_str(str[i], delim) == 1)
        i++;
      else
        {
          word = len_word(str + i, delim);
          tab[j] = xmalloc(sizeof(**tab) * (word + 1));
          strncpy(tab[j], str + i, word);
          i += word;
          j++;}

int             main(void)
{
  char *str;
  char **tab;
  int i;
  int j;
  str = malloc(BUFF_SIZE * sizeof(char));
  read (1, str, BUFF_SIZE);
  tab = my_str_to_wordtab(str, " ");
  for (i = 0; tab[i]; i++)
    {
      for (j = strlen(tab[i]) - 1; tab[i][j]; j--)
        if (tab[i][j] != '\n') putchar(tab[i][j]);
      putchar(' ');
    }
  putchar('\n');
  free (str);
  for (i = 0; tab[i]; i++)
    free (tab[i]);
  free (tab);
  return 0;
}

        }
    }
  return (tab);
Card1nal вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54
Удаление элементов строки s2 из строки s1 Ueshua Общие вопросы C/C++ 4 20.12.2009 13:06
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27