Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


Ответ
 
Опции темы
Старый 14.06.2010, 10:39   #1
FauLL
Пользователь
 
Регистрация: 28.05.2010
Сообщений: 15
По умолчанию Строки

Даны два числа: N1 и N2, и две строки: S1 и S2. Получить из этих строк новую строку, объединив N1 первых символов строки S1 и N2 последних символов строки S2.

Код:
#include <iostream.h>
#include <string.h>
main() 
{
      int n1,n2;
      char s3[10];
      const char s1[]="Programma", s2[]="Texnika";
      cout<<"s1="<<s1<<endl;
      cout<<"s2="<<s2<<endl;
      cout<<" n1=";
      cin>>n1;
      cout<<endl;
      cout<<" n2=";
      cin>>n2;
      cout<<endl;
      char strcat(char s3,const char s1,int N1);
      char strcat(char s3,const char s2,int N2);
      cout<<"s3="<<s3<<endl;
      system("PAUSE");
      return 0;
      }
помогите доработать
FauLL вне форума Ответить с цитированием
Старый 14.06.2010, 19:56   #2
greshnikang
Новичок
Джуниор
 
Регистрация: 14.06.2010
Сообщений: 1
По умолчанию

Код:
  1 #include <iostream>
  2 #include <string.h>
  3
  4 using namespace std;
  5
  6 main() {
  7       int n1,n2;
  8       char s3[10];
  9       const char s1[]="Programma", s2[]="Texnika";
 10       cout<<"s1="<<s1<<endl;
 11       cout<<"s2="<<s2<<endl;
 12       cout<<"n1=";
 13       cin>>n1;
 14       cout<<endl;
 15       cout<<"n2=";
 16       cin>>n2;
 17       cout<<endl;
 18       strncat(s3, s1, n1);
 19       strncat(s3, s2, n2);
 20       cout<<"s3="<<s3<<endl;
 21       return 0;
 22 }
Както так должно быть...
greshnikang вне форума Ответить с цитированием
Старый 15.06.2010, 11:39   #3
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,623
По умолчанию

2FauLL
А что у вас означают вот эти две строки?
Код:
      char strcat(char s3,const char s1,int N1);
      char strcat(char s3,const char s2,int N2);
MaTBeu вне форума Ответить с цитированием
Старый 15.06.2010, 16:53   #4
FauLL
Пользователь
 
Регистрация: 28.05.2010
Сообщений: 15
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
2FauLL
А что у вас означают вот эти две строки?
Код:
      char strcat(char s3,const char s1,int N1);
      char strcat(char s3,const char s2,int N2);
Да я понял как исправить.
У меня возник другой вопрос как из второй строчки копировать n последних символов?
FauLL вне форума Ответить с цитированием
Старый 15.06.2010, 17:14   #5
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,623
По умолчанию

Цитата:
У меня возник другой вопрос как из второй строчки копировать n последних символов?
Код:
for(int i = strlen(str)-n, k = 0; i < strlen(str); i++, k++)
              str1[k] = str[i];
В итоге у вас в str1 будет n последних символов строки str.
MaTBeu вне форума Ответить с цитированием
Старый 15.06.2010, 19:10   #6
FauLL
Пользователь
 
Регистрация: 28.05.2010
Сообщений: 15
По умолчанию

Код:
#include <iostream.h>
#include <string.h>
main() 
{
      int n1,n2;
      char s3[10];
      const char s1[]="Programma", s2[]="Texnika";
      cout<<"s1="<<s1<<endl;
      cout<<"s2="<<s2<<endl;
      cout<<" n1=";
      cin>>n1;
      cout<<endl;
      cout<<" n2=";
      cin>>n2;
      cout<<endl;
      strncat(s3,s1,n1);
      strncat(s3,s2,n2);
      for(int i = strlen(s2)-n2, k = 0; i < strlen(s2); i++, k++)
              s3[k] = s2[i];
      cout<<"s3="<<s3<<endl;
      system("PAUSE");
      return 0;
      }
вот сделал но саровно не копирует последние символы из 2-строки в 3-ю
FauLL вне форума Ответить с цитированием
Старый 15.06.2010, 20:09   #7
alex_alpha
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 43
По умолчанию

Мой вариант. Вроде бы все работает...
Код:
#include <iostream>
#include <string.h>
using std::cout;
using std::cin;
using std::endl;
int main() 
{
      int n1=2,n2=2;
      char s1[]="Programma", s2[]="Texnika";
	  char *s3;
	  s3=new char[n1+n2+1];
	  s3[0]='\0';
      cout<<"s1="<<s1<<endl;
      cout<<"s2="<<s2<<endl;
	  cout<<"s3="<<s3<<endl;
     /* cout<<" n1=";
      cin>>n1;
      cout<<endl;
      cout<<" n2=";
      cin>>n2;*/
      cout<<endl;
      strncat(s3,s1,n1);
      //strncat(s3,s2,n2);
      for(int i = strlen(s2)-n2, k = n1; k<(n1+n2); i++, k++)
              s3[k] = s2[i];
	  s3[n1+n2]='\0';
      cout<<"s3="<<s3<<endl;
      system("PAUSE");
      return 0;
}
alex_alpha вне форума Ответить с цитированием
Старый 16.06.2010, 12:54   #8
FauLL
Пользователь
 
Регистрация: 28.05.2010
Сообщений: 15
По умолчанию

Спасибо всем большое
FauLL вне форума Ответить с цитированием
Старый 16.06.2010, 16:12   #9
FauLL
Пользователь
 
Регистрация: 28.05.2010
Сообщений: 15
По умолчанию

Не буду создавать новую тему отпишусь здесь. Вопрос таков:
Даны векторы X={x1, x2, x3}, Y={у1, у2, у3} и Z={z1, z2, z3}. Построить матрицу A(3,3), строками которой являются соответственно векторы X,Y и Z, упорядоченные в порядке возрастания значений их компонент. Ввод элементов массива, упорядочение вектора по возрастанию оформить в виде подпрограммы.

Код:
#include <iostream.h>
main(){
       int A[3][3];
       int i,j;
       cout<< "Vvod A" <<endl;
       for ( i=0; i<3; i++)
       for ( j=0; j<3; j++)
       	{
		cout << "M["<<i<<"]["<<j<<"]=";
		cin >>A[i][j];
	}
{
    if (A[i][j]> A[i+1][j+1])
{ 
    int hold =A[i][j];
   A[i][j]=A[i+1][j+1];
    A[i+1][j+1]=hold;
}
}
cout<<"Vivod A"<<A[i][j]<<endl;
system("PAUSE");
return 0;
}
ни как не доведу до
FauLL вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840