#include <iostream.h>
#include <string.h>
using namespace std;
int main()
{
string str;
getline(cin, str);
if (!(str.length() % 2) && (str.length() > 4))
{
str.erase(0, 2);
str.erase(str.length() - 2, 2);
cout << str << endl;
}
return 0;
}
[C/C++] Строки
Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши "Ввод". Программа должна определить длину введенной строки L и, если длина L четная, то удаляются 2 первых и 2 последних символа.
вот код на Visual C++.
не могу переделать под Borland С++
#include <iostream>
#include <string>
int main()
{
std::string str;
std::getline(std::cin, str);
if (!(str.length()%2)&&(str.length()>4))
{
str.erase(0,2);
str.erase(str.length()-2,2);
std::cout << str << std::endl;
}
return 0;
}
-----------------------------------
Версия Borland C++? Просто номер версии.
Borland C++ 5.02
А так не заработает?
дело в том что Borland C++ не понимает коды с Visual C++. Нужен старый код СИ.
А принципиально использовать Borland C++ 5.02?
времени чуть есть, буду ждать, да и других вариантов нет(
спс)))
Код:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
int main()
{
char* p = (char*)malloc(256);
scanf( "%254s", p );
if (!(strlen( p ) % 2) && (strlen( p ) > 4))
{
char* str = p + 2;
*(str + strlen( str ) - 2) = '\0';
printf( "%s\n", str );
}
free( p );
return 0;
}
#include <string.h>
#include <malloc.h>
int main()
{
char* p = (char*)malloc(256);
scanf( "%254s", p );
if (!(strlen( p ) % 2) && (strlen( p ) > 4))
{
char* str = p + 2;
*(str + strlen( str ) - 2) = '\0';
printf( "%s\n", str );
}
free( p );
return 0;
}
Запускается, но после ввода символов при нажатии Enter выкидывает из программы(
Из консольки запускай, она просто не успевает показаться. Или допиши:
запускаю из консоли.
Код:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <conio.h>
int main()
{
char* p = (char*)malloc(256);
scanf( "%254s", p );
if (!(strlen( p ) % 2) && (strlen( p ) > 4))
{
char* str = p + 2;
*(str + strlen( str ) - 2) = '\0';
printf( "%s\n", str );
}
free( p );
while( !kbhit() );
return 0;
}
#include <string.h>
#include <malloc.h>
#include <conio.h>
int main()
{
char* p = (char*)malloc(256);
scanf( "%254s", p );
if (!(strlen( p ) % 2) && (strlen( p ) > 4))
{
char* str = p + 2;
*(str + strlen( str ) - 2) = '\0';
printf( "%s\n", str );
}
free( p );
while( !kbhit() );
return 0;
}
Все работает...
ЗЫ Это конечно мне не обязательно, но самому интересно: можете дать пояснение, какая функция что делает? Хочу разобраться
Код:
// тут выделяем память под 256 символов
char* p = (char*)malloc(256);
// тут читаем строку с клавиатуры (не больше 254 символов)
scanf( "%254s", p );
// strlen - узнать длину строки
if (!(strlen( p ) % 2) && (strlen( p ) > 4))
{
// убираем 2 символа спереди
char* str = p + 2;
// убираем 2 символа сзади
*(str + strlen( str ) - 2) = '\0';
// выводим на экран
printf( "%s\n", str );
}
// освобождаем выделенную под строку память
free( p );
// ждем, пока юзер не нажмет anykey (чтобы успеть увидеть результат на экране
while( !kbhit() );
// выходим в ОС
return 0;
}
char* p = (char*)malloc(256);
// тут читаем строку с клавиатуры (не больше 254 символов)
scanf( "%254s", p );
// strlen - узнать длину строки
if (!(strlen( p ) % 2) && (strlen( p ) > 4))
{
// убираем 2 символа спереди
char* str = p + 2;
// убираем 2 символа сзади
*(str + strlen( str ) - 2) = '\0';
// выводим на экран
printf( "%s\n", str );
}
// освобождаем выделенную под строку память
free( p );
// ждем, пока юзер не нажмет anykey (чтобы успеть увидеть результат на экране
while( !kbhit() );
// выходим в ОС
return 0;
}
ЗЫ (я наглею)))) Есть ещё одна задача, с Массивами, решенная, только я не понимаю там код, что и как делалось. Смог бы прокомментировать?
Цитата: InterWay
Ещё раз спасибо))) Утро вечера мудренее, завтра буду разбираться более подробно)
ЗЫ (я наглею)))) Есть ещё одна задача, с Массивами, решенная, только я не понимаю там код, что и как делалось. Смог бы прокомментировать?
ЗЫ (я наглею)))) Есть ещё одна задача, с Массивами, решенная, только я не понимаю там код, что и как делалось. Смог бы прокомментировать?
Можно попробовать.
Код:
int main()
{
int a[10][10];
int i,j,n,p,t,y,r;
cout<<"Vvedite razmernost matrici: ";
if(n<10)if(n>0)cin>>n;
cout<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
cout<<"A["<<i<<","<<j<<"]= ";
cin>>a[j];
}
t=0;
y=0;
r=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
p+=a[j]*a[j];
}
if(p==1){y++; p=0;}else{p=0;}
}
p=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
p+=a[j]*a[i+1][j];
}
if(p==0){p=0;r++;}else p=0;
}
if(r==n-1)y=(y+n);
if(y==2*n){cout<<"Matrica ortonormirovannaya!!!! ";}else{cout<<"Matrica ne ortonormirovannaya!!!!";}
for(i=0;i<n;i++)
{
cout<<" "<<endl;
for(j=0;j<n;j++)
{
cout<<" "<<a[j];
}
}
getch();
return 0;
}
{
int a[10][10];
int i,j,n,p,t,y,r;
cout<<"Vvedite razmernost matrici: ";
if(n<10)if(n>0)cin>>n;
cout<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
cout<<"A["<<i<<","<<j<<"]= ";
cin>>a[j];
}
t=0;
y=0;
r=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
p+=a[j]*a[j];
}
if(p==1){y++; p=0;}else{p=0;}
}
p=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
p+=a[j]*a[i+1][j];
}
if(p==0){p=0;r++;}else p=0;
}
if(r==n-1)y=(y+n);
if(y==2*n){cout<<"Matrica ortonormirovannaya!!!! ";}else{cout<<"Matrica ne ortonormirovannaya!!!!";}
for(i=0;i<n;i++)
{
cout<<" "<<endl;
for(j=0;j<n;j++)
{
cout<<" "<<a[j];
}
}
getch();
return 0;
}
Кстати, не факт, что программа работает правильно.
P.S. Нихрена она не правильная. С самых первых строк.
Млин... плохо(((
Цитата: InterWay
Непонятно всё что ты перечислил...)))
Млин... плохо(((
Млин... плохо(((
Извиняй браток. Программированию не обучаю ;)
Ну это да))) Мне как в прошлой задаче, комментарии к функциям, дальше я сам как-нибудь)
cout - вывод на экран
cin - чтение из клавиатуры
endl - завершение строки вывода
getch() - ожидание нажатия anykey (как в прошлом примере)
А остальные страшности - ключевые слова языка (организация циклов и проверка по условиям (ветвление) ).
Спасибо и на этом))) Помог мне сегодня оочень. СПС) :)