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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2010, 11: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, 20:56   #2
greshnikang
Новичок
Джуниор
 
Аватар для 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, 12:39   #3
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

2FauLL
А что у вас означают вот эти две строки?
Код:
      char strcat(char s3,const char s1,int N1);
      char strcat(char s3,const char s2,int N2);
MaTBeu вне форума Ответить с цитированием
Старый 15.06.2010, 17: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, 18:14   #5
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Цитата:
У меня возник другой вопрос как из второй строчки копировать 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, 20: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, 21: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, 13:54   #8
FauLL
Пользователь
 
Регистрация: 28.05.2010
Сообщений: 15
По умолчанию

Спасибо всем большое
FauLL вне форума Ответить с цитированием
Старый 16.06.2010, 17: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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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